Чтение текстового файла, разделенного новой строкой. C ++ в Unix

0

Хорошо, я попробовал много разных предложений на www, и придумал все со всеми примерами. Это такая простая вещь, которая не работает для меня, это расстраивает! Я приложил файл, который мне нужно прочитать в структуре данных. В этом примере я просто печатаю его на экране. Этот следующий код работал для меня раньше, но теперь нет. Я пробовал в визуальных студиях, а также в unix, и ни один из них не работает. Мне в конечном итоге нужно, чтобы он работал на unix.

Может ли кто-нибудь сказать мне, почему это не работает, или предложить лучший способ прочитать в моем файле? Пример файла:

word
book
programming

Вот моя функция для чтения в файле.

#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>
#include "words.txt"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
ifstream file;
string line;

file.open("words.txt");
if(file.is_open()){
    while(getline(file, line)){
        getline(file, line);
        cout << line <<endl;
    }
}
file.close();



return 0;
}

Спасибо.

файл, но бросает ошибки о разделителях. Например, в unix, работающем с g++:

wordlist2.txt: 498841:1: error: missing terminating ' character
  incumbent's
  ^
wordlist2.txt:498875:13 warning: missing terminating ' character [enabled by default] 
  at your wits' end
  ^

А в визуальных студиях:

  Error 2   error C4430: missing type specifier - int assumed. Note: C++ does                not support default-int    
  Error 14  error C2146: syntax error : missing ';' before identifier 'mouse'
  • 1
    На какой операционной системе вы работаете? И какой выход? Используйте отладчик (например, gdb ).
  • 0
    Если бы вы могли добавить еще немного к примеру, чтобы превратить его в полностью компилируемый, выполнимый пример, это помогло бы вам получить качественный ответ.
Показать ещё 1 комментарий
Теги:
file
file-io
fstream

1 ответ

1
Лучший ответ
while (!file.eof())

Это не очень хорошая идея. Вместо этого напишите следующее:

while (getline(file, line)) {
    cout << line << endl;
}

Вы, конечно, не хотите

#include "words.txt"

Удалите эту линию!

  • 0
    THX для исправления опечатки;)
  • 0
    Я попробовал это изменение, и оно все еще выбрасывает те же исключения.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню