2015-03-17 6 views
0

У меня есть файл со следующими значениями:Входной поток в с программой

12,23 
2 90 

У меня есть сшитую структуру списка, который имеет функцию, чтобы добавить значения к нему:

add_value(int x). 

Моя конечная цель - направить файл на мой cprog и добавить значения (ints) в мою структуру.

file | cprog 

Но я не могу понять, как читать каждую цифру, добавить его к моему связанному списку, и в конечном итоге перейти на следующую цифру и добавить, что тоже?

Благодаря

+1

'cat file | cprog' – BLUEPIXY

ответ

2
int x, status; 

while((status=scanf("%d", &x))!=EOF){ 
    if(status == 1) 
     add_value(x); 
    else 
     fgetc(stdin);//drop one character 
} 
+0

Привет, BLUEPIXY, есть ли способ проверить, является ли текущий символ буквой или номером? и добавить его в список ???? некоторые вещи в моем файле не являются ints .. спасибо –

+0

''% d "' принять 'int', а' else' не принимать. у вас есть связанная структура списка, у которой есть функция для добавления значений к ней_ – BLUEPIXY

1

После открытия файла можно использовать:

fscanf(inputStream, "%d%d", &var1, &var2); // example 

который помещает считанных целые числа в соответствующих переменных. Затем вы можете взять эти переменные и добавить их в свой список.

+0

Этот пример кода будет читаться только в первых целых числах в файле. Вам нужно будет перейти на другие целые числа, чтобы продолжать получать больше. Если бы вы точно знали, как много двигаться, вы можете сделать что-то вроде 'inputStream + 2'. – DigitalNinja

+0

Единственное, что, если я не знаю, сколько ints в файле? –

+0

Вы должны проверить возвращаемое значение. –

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