Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Трабл считывание с файла!


Автор: Bart_Simpson 1.4.2007, 10:34
Вот какая проблема всё пашет считывает с файла НО почемуто лишнюю строку последнюю с файла считывает?
Код

int OpenReadF (const char* FileName); 
const char endTerm='0';
char Seps[]=" ";
const int bufSize = 255;
char in_buff[bufSize];
const char FileName[]="in.txt";
int main(){
    
    FILE *fnPtr=fopen(FileName,"w");
    if(fnPtr == NULL)
    {
        cout << "File couldnt be open";
    }
    else {
        cout << "Enter ->\n";
    while (_getch()!=endTerm){    
        cin.getline(in_buff, bufSize);
        fprintf(fnPtr,"%s\n",in_buff);
    }}
    fclose(fnPtr);     
    OpenReadF(FileName);
    return 0;
}

int OpenReadF (const char* FileName) {
    char ReadBuff[100];
    char *tokenPtr;
    FILE *fnPtr=fopen(FileName,"r");
    if(fnPtr == NULL){
        cout << "File couldnt be open";
    }
    while (!feof(fnPtr)){
        fgets(ReadBuff,100,fnPtr);
/*        tokenPtr=strtok(ReadBuff,Seps);
    while (tokenPtr!=NULL){
        printf("%s\n",tokenPtr);
        tokenPtr=strtok(NULL,Seps);
    }*/
    cout << ReadBuff;
    }
    _getch();
    return 0;
}


Мож кто ашипку найдет ато не могу дальше работать!

Автор: Kuvaldis 1.4.2007, 10:46
Код

 while (!feof(fnPtr)){    
        fgets(ReadBuff,100,fnPtr);

Нужно так:
Код

while ( fgets(ReadBuff,100,fnPtr) )            

Автор: Bart_Simpson 1.4.2007, 10:53
Пасибо. Вот еще вопрос есть у меня файл формата такого

2 aaa bbb cccc dddddd 
3 ddddddd aaaaaa ccccccc wwwww

как мне считать перую цифру (числом а не символом) чтоюы потом я есче мог его в цикле использоваьт чтобы вставить этот номер между словами в первом случае 2 посчету??????? smile 

Автор: Kuvaldis 1.4.2007, 10:56
Цитата

как мне считать перую цифру (числом а не символом) чтоюы потом я есче мог его в цикле использоваьт

используй fscanf(f, "%d", &num) 

Автор: Bart_Simpson 1.4.2007, 11:09
Да считало! пасибо. наверно уже задолбал. Тут вот еще одна запара мне надо вставить по номеру в начале файла это цифру между словами как лучше сдлеать я пока что написал strtok делит на слова мож как то можно иначе сделать??????

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)