Я хочу прочитать из двух файлов, один из которых содержит поплавки в трех столбцах, а другой содержит ints в двух столбцах. У меня есть следующий код для чтения из стандартного ввода:Прочтите два файла из stdio
int main() {
while (scanf("%lf %lf %lf\n",&x,&y,&z) != EOF) {
// do stuff
}
puts("foo");
int a,b;
while (scanf("%d %d\n",&a,&b) != EOF) {
puts("bar");
}
}
Тогда я вызываю программу с cat ortho.dat pairs.dat | ./angles
, ortho.dat и pairs.dat быть два файла. Однако вывод равен foo
, что указывает на то, что второй файл никогда не читается, по-видимому, потому, что он считывает EOF и немедленно завершает второй цикл. Это верно?
Как я мог прочитать эти два файла, фактически не открыв их в программе, просто прочитав их из stdin?
1. Принятие решения о языке программирования. 2.Pass имена файлов в приложении не могут использовать 'cat'. 3. Прочитайте эти файлы - это зависит от языка программирования. –
Я забыл упомянуть об этом в самой записи, но язык - это C++, как указано в заголовке и тегах. Я также специально сказал, что хочу знать, как это сделать из оболочки, без файлов. Что я знаю, как это сделать :) – andrepd
Итак, почему C в заголовке и тегах, если это C++? –