#include <iostream>
using namespace std;
int main (void)
{
char teksti[101];
cout << "Kirjoita teksti\x84 " << endl;
cin.read(teksti, 101);
_strupr(teksti);
std::cout << endl << teksti;
cin.ignore(1000, '\n').ignore(1000, '\n');
return 0;
}Kun ajan tuon komentotulkissa muokkaamaan olemassaolevaa tekstitiedostoa niin se laittaa täytemerkkiä jos lopussa on tyhjää. Mitenkäs siitä pääsee eroon??
Mod. edit: kooditagit
Laita nolla perään.
Tuo read tekee formatoimattoman luvun eikä se lisäile nullimerkkejä tms. Ja kun tekee formatoimatonta lukua, gcount kertoo, paljonko tavaraa todella tuli.
cin.read(teksti, sizeof(teksti)-1); teksti[cin.gcount()] = '\0'; _strupr(teksti);
Jesss!!!!! Kiitti koo!!!
Vielä lisäkysymys: voiko cin.read:iä käyttää stringissä??
Ei, jos tarkoitat, että voiko read-funktiolla lukea suoraan stringiin. Tuo funktio on tarkoitettu formatoimattomaan lukemiseen, se lukee kaiken - kontrollimerkit ja vaikka mitkä - tiedostosta sellaisenaan, siksi rajapinta on aika matalla tasolla, osoite char-puskuriin ja puskurin maksimikoko.
Oletkohan puuhaamassa sellaista, mihin parhaiten sopisi jokin >>-operaattori tai erillinen getline-funktio?
Juu, oikeassa olit
Aihe on jo aika vanha, joten et voi enää vastata siihen.