1

我有一个程序可以从文件或标准输入中获取数据。我编写了使用 sscanf 扫描文件的代码。我想知道我是否可以重用该代码,但使用标准输入而不是使用 scanf?

前任:

我该如何修改它以使其适用于标准输入?

while(fgets(buffer, MAX_LEN, input) != NULL) { 
    if (sscanf(buffer, "%s %s %s", one, two, three) == 3) { } 
}
4

3 回答 3

3

您无需更改sscanf()调用 - 这fgets()是从输入文件中读取的调用。

您可以通过在调用中stdin逐字替换inputwith来更改您的代码片段以使用(是指标准输入的全局声明)。stdinfgets()stdinFILE *stdio.h

于 2012-10-08T03:46:28.893 回答
0

fgets(buffer,MAX_LEN,input)ie中的第三个参数input是要从中获取输入的源。在您的情况下,它应该被替换为,stdin以便它从标准控制台而不是文件获取输入。

于 2016-04-15T18:21:57.680 回答
-1

fscanf:http ://www.cplusplus.com/reference/clibrary/cstdio/fscanf/

于 2012-10-08T03:33:52.190 回答