在C中的字符串中输出变量内容

时间:2012-11-07 15:17:47

标签: c string variables output

在C ++中,我正在执行以下操作:

cout<<"a["<<i+1<<",<<"j+1<<"]= "; cin>>a[i][j]; 

(显示:“a [1] [1] =”并获取[0] [0]的输入;基本上i + 1只是查看器的一个技巧,因为我想使用0中的数组不是1,但那不是重点。)

如何使用printf和scanf在C中完成此操作? 显然C不喜欢

printf("a["<<i+1<<","<<j+1<<"]= "); scanf("%d", a[i][j]);

基本上,等同于

<<i+1<< 

用C语言编写?

3 个答案:

答案 0 :(得分:6)

你不能在C中的字符串上使用<<运算符.C没有(很多)运算符重载,<<只表示“二进制左移”。

printf("a[%d][%d]=", i + 1, j + 1);
fflush(stdout);
scanf("%d", &a[i][j]);

fflush()因为printf()没有在换行符中结束,所以在它之后直接输入是不安全的。刷新(输出流)可以在这里提供帮助,并确保我们正在打印的提示确实使其在输入读取开始之前完成屏幕。

答案 1 :(得分:0)

您可以使用格式说明符代替数字,而其他字符串字符相同

答案 2 :(得分:0)

要直接回答您的问题,C中的<<运算符没有精确等价。您似乎误解了printf function。它应该像这样使用:

printf("a[%d][%d]=", i + 1, j + 1);
scanf("%d", &a[i][j]);

请注意scanf所需的&指针运算符。