我是 C 的初学者。在我的程序中,用户将通过命令行添加一个参数。该参数将是一个字符串,例如“你好吗”。我想从这个字符串中逐个读取一个字符。该字符串的大小未知。所以执行程序的例子(在 Windows 中)是:测试“你好,你好吗”
有点像
#include <stdio.h>
int main()
{
char c;
while ((c = getchar()) != EOF)
putchar(c);
return 0;
}
应该从输入字符串中读取字符 c,这是我做不到的。 我希望我说清楚了。
感谢您的帮助。
最佳答案
getchar
从标准输入读取,所以你的程序所做的是逐个字符地从标准输入读取,并将它们打印到标准输出。有一个错误,你应该声明c
作为int
,因为 EOF
通常是 -1
.
但是,您正在尝试打印命令行参数。要做到这一点,您不需要一个字符一个字符地执行。您需要使用 main
带有这样参数的版本:
int main(int argc, char* argv[])
当您调用程序时 test "Hello, how are you"
, argv[1]
已经是参数字符串 Hello, how are you
.您可以直接使用此字符串。
我就不给你密码了,你可以用printf
打印字符串。如果您想获取每个字符,请使用循环从字符串 argv[1]
中获取它.
关于c - 如何从命令行参数读取字符后的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19195356/