c - 如何在C中读取各种类型的用户输入?

标签 c

这可能是个愚蠢的问题,但我是 C 的新手,我意识到如果你想使用 scanf,你必须给它一个你正在扫描的类型。但是,如果您不知道用户会输入什么,您怎么能给它一个明确的类型呢?

例如,我希望用户能够给出各种命令,例如

read file.txt
write file2.txt
delete 2 
delete 4
quit

我从做开始

printf("\nPlease enter a command (print, delete, write, quit): ");
scanf("%s", &str); //but I realized here how can I differentiate it? 
//i won't know what the user will type beforehand so I can't give a definite type.

最佳答案

对于每个列出的输入,scanf() 的结果将只是第一个单词(直到但不包括空格)。建议使用 fgets() 将整个命令行输入到本地缓冲区,然后从本地缓冲区解析数据字段,可能使用 strtok() strchr() 或 ...

关于c - 如何在C中读取各种类型的用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29503646/

相关文章:

c - 在 C 中从管道读取

java - GC与其他两种内存管理方式的比较

c - 为什么预处理器条件给我这个输出

c - 在 C 中包含 Guards 语法

c - 在应用程序退出之前删除所有文件

c - 终止具有临界区代码的 POSIX 多线程应用程序的最佳方法是什么?

c++ - VxWorks with Eclipse - 缺少头文件

c 和格式化输出

c - 使用 typedef 声明 void 参数列表是非标准的

c - 如何修复传递给 pango_layout_set_text() 的无效 UTF-8 字符串