gpt4 book ai didi

c - 从标准输入读取输入

转载 作者:行者123 更新时间:2023-11-30 20:59:56 26 4
gpt4 key购买 nike

我想要一个终端运行一个进程,并且在运行时我想通过同一终端向该进程发送命令。该进程在 while 循环中运行并接受多个命令,其中一些命令具有可选参数。例如,发送“打印 ID”,其中 ID 是可选的。目前我有这个

char *command = malloc(100);
while(1) {
fgets(command , 100 , stdin);
if( strcmp(command, "PRINT") == 0 ) {
/*do something*/

但是strcmp总是失败,我不知道C如何提取可选参数并在函数中使用它。

最佳答案

@BLUEPIXY 是正确的。

根据fgets的文档:

从给定文件流中读取最多 count - 1 个字符并将它们存储在 str 指向的字符数组中。如果发生文件结尾或找到换行符,则解析停止,在这种情况下 str 将包含该换行符。如果没有发生错误,则在写入 str 的最后一个字符之后紧接着的位置写入一个空字符。

因此,您要查找的是 strcmp(command, "PRINT\n") == 0

您可以通过使用 fscanf 来避免这种情况:

fscanf(stdin, " %100[^\n]", command);
if(strcmp(command, "PRINT") == 0) {
/* do something */
}

关于c - 从标准输入读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44240738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com