有没有办法使用sscanf与stdin?

时间:2012-10-08 03:24:24

标签: c stdin scanf

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

例如:

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

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

3 个答案:

答案 0 :(得分:3)

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

您可以通过stdin调用中input替换stdin来更改您的代码段以使用fgets() stdin是全局{FILE * 1}}在stdio.h中声明引用标准输入。)

答案 1 :(得分:0)

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

答案 2 :(得分:-1)