stdin和调用参数之间的区别?

时间:2015-03-30 10:53:03

标签: c

如果我有方法

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

我的印象是,通过标准输入调用参数和接收数据有点相同。添加参数“1 2 3 4”和接收标准输入“5 6 7 8”之间有什么区别?什么时候你会选择一种方法而不是另一种?

1 个答案:

答案 0 :(得分:1)

区别在于您如何访问它们。

可以通过argv访问参数。标准输入可通过stdin文件描述符访问。

案例1 - 命令行参数:

int i;
for (i=1; i < argc; i++) {
    printf("%s", argv[i]);      // Prints "1 2 3 4"
}

案例2 - 标准输入:

char buffer[121];
while (scanf("%120s", buffer) == 1) {
    printf("%s", buffer);      // Prints "5 6 7 8"
}