繁体   English   中英

如何在C的一行中读取多个单词?

[英]How to read multiple words in a line in C?

我希望用户能够输入

start < read_from_old_file.c > write_to_new_file.c 
//or whatever type of file

因此,一旦用户键入命令“ start”后跟“ <”,这将表示正在读取文件,而“>”则表示正在写入新文件。

问题是,我知道你可以使用

scanf("%s", buff);

但这会读一个字,而不会读到下一个字。

您可以使用:

scanf("%[^\n]%*c",buff);

如果您希望为此使用scanf()

%*c是由于要按回车键来摆脱换行符。

通常,使用scanf系列功能不是一个好主意。 相反,您应该使用fgetsfread读取数据,然后对它执行自己的处理。 fgets读取一行,而fread是当您不关心行而只需要n个字节的数据时(例如,实现cat )。

大多数程序都希望一次读取一行。 您需要分配自己的伙伴才能传递给fgets

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM