采取特定数量从C程序中一个txt文件
如果输入是从标准输入,那么你可以使用:
int value;
if (scanf("%*s %d", &value) != 1)
…Oops - incorrectly formatted data…
…use value…
的%*s
读取,但丢弃可选的前导空格和一个或多个非空白(THN1234
)的序列;空白跳过更多可选空白; %d
读取整数,在输入缓冲区中留下换行符。如果空白后面的内容不能转换为数字,或者如果您获得EOF,则可以在if
条件中检测到它,并在if
的正文中报告。
非常感谢。你的回答非常有帮助。 –
哇。自从我使用C以来已经很长时间了。然而,我认为在这种情况下,C和C++的答案是相似的。您可以使用strtok_r将字符串拆分为令牌,然后将第二个令牌解析为int。请参阅http://www.cplusplus.com/reference/clibrary/cstring/strtok/。
您可能也想看看this问题。
当我的答案是'strtok()'时,它让我很担心 - 它不是第一个想到的替代方案,不仅仅是因为它仍然留下了'转换为'int''撤消。 –
是的。但我们在这里说C。问题包括忽略字符串的初始部分,所以我不想以sscanf或等价的方式开始。 – melston
这个问题根本没有意义。没有一个普遍的问题,因为你可能还没有丝毫的想法。那么你不能在这里问!你应该写一些代码,如果它失败了,你来找SO并提问,发布代码并说我认为这应该做X但是它在做Y,你能帮我找到问题吗? –
'fscanf(fp,“%* s%d”,&value);' – BLUEPIXY
欢迎使用堆栈溢出。 请注意,在这里说'谢谢'的首选方式是通过 提高投票的好问题和有用的答案(一旦你有足够的声誉这样做),并接受任何 问题最有用的答案,你问(这也给你一个小小的提升,以你的声望 )。 请参阅[关于]页面,以及[如何在此处提问 ?]和 [当有人回答我的 问题时,我该怎么办? ?](http://*.com/help/someone-answers) –