2015-05-04 3 views
0

Я пытаюсь взять ввод из текстового файла для вызова функции. Функция принимает 3 внутренних параметра. Каждая строка в текстовом файле будет содержать каждый int, за которым следует пробел. Как разобрать каждую строку, вызвать функцию с помощью целых чисел из каждой строки, а затем выйти из цикла и закрыть файл? Любая помощь будет принята с благодарностью.C++ Создание/анализ текстового файла в функции

// Here is what the contents of the text file will look like 
1 2 3 
4 5 6 
7 8 9 
10 11 12 

// here is the function 
void readValues(int1, int2, int3) 
{ 
    // do something 
} 

// open text file and parse input. if it does not exist, create file 

ifstream file("test.txt", fstream::in | fstream::out | fstream::trunc); 

while (file.eof()) 
{ 

    int a, b, c; 
    file >> a >> b >> c >> std::endl; 
    readValues(a, b, c); // first iteration would be readValues(1, 2, 3) 

    if(file.eof()) 
    { 
     break; 
    } 
} 

file.close(); 
+0

Почему вы включили код? Что за вопрос? –

+0

этот код не работает. – user3781214

+0

Как насчет этого кода не работает? Включите ошибки, например, что компилятор выдает. http://youtube.com/watch?v=786PavIEAOQ –

ответ

1

Если вы собираетесь прочитать файл, вы не должны также открыть его для записи (fstream::out) и обрезать его (fstream::trunc).

Вы также не должны испытывать eof в вашем состоянии цикла - есть несколько случаев, когда eof подходит, но вы не столкнетесь ни с одним из своих первых нескольких лет программирования на С ++.

И вам не нужно явно закрывать файл, деструктор обрабатывает это.

Делают это так:

int main() 
{ 
    ifstream file("test.txt"); 

    int a, b, c; 

    while (file >> a >> b >> c) 
    { 
     readValues(a, b, c); 
    } 
} 
+0

это почти то, что я хочу. Как создать test.txt, если он не существует? – user3781214

+1

@ user3781214 Что бы вы прочитали от него, если он не существует? – molbdnilo

Смежные вопросы