замените стандартный файл - PullRequest
2 голосов
/ 15 октября 2008

У меня есть программа с fscanf, подобная этой:

fscanf (stdin, "% d% d, ....

У меня есть много fscanf и файлов, которые я хотел бы протестировать, файлы выглядят так

10485770 15 51200000 -2 10 10 10485760 10485760 10 10485760 10485760 10 10485760 10485760

Ну, мой вопрос: как я могу сказать программе или компилятору, чтобы они брали данные не с клавиатуры, а из этих файлов? Эти программы являются эталонными, и в файлах, которые я получил, я уверен, что есть способ сделать это автоматически, потому что в некоторых случаях есть много входов. Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 15 октября 2008

При запуске из командной строки вы можете перенаправить файл на стандартный ввод, используя оператор «<». </p>

Например, на окнах:

$ type input_file
10485770 15 51200000 -2 10 10 10485760 10485760 10 10485760 10485760 10 10485760
10485760
$ my_program.exe < input_file

или * nix:

$ cat input_file
10485770 15 51200000 -2 10 10 10485760 10485760 10 10485760 10485760 10 10485760
10485760
$ ./my_program < input_file
3 голосов
/ 15 октября 2008

Попробуйте freopen. Например.

freopen( "somefile.txt", "r", stdin );
0 голосов
/ 15 октября 2008

Посмотрите структуру ФАЙЛА. Вы захотите использовать указатели FILE для этого решения.

...