如何从命令行参数中读取char之后的char?

我是C中的初学者。在我的程序中,用户将通过命令行添加一个参数。 这个参数将是一个string,例如“你好,你好吗”。 我想从string中读取char之后的char。 这个string有一个未知的大小。 所以执行程序(在Windows中)的例子是:testing“你好,你好吗”

就像是

#include <stdio.h> int main() { char c; while ((c = getchar()) != EOF) putchar(c); return 0; } 

字符c应该从inputstring中读取,这是我不能做的。 我希望我说清楚。

感谢您的帮助。

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中的命令行参数被传递给主函数。 您必须使用以下签名来声明主函数:

 int main(int argc, char* argv[]) 

那么argc是命令行参数的数量, argv是包含每个参数的字符串数组。

然后你可以用一个简单的循环访问每个字符:

 int i; for (i = 0; argv[1][i] != 0; i++) { char c = argv[1][i]; // Use c as you need }