-4

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

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

(显示:“a[1][1]=”并获取 a[0][0] 的输入;基本上 i+1 对查看者来说只是一个技巧,因为我想使用从 0 开始的数组而不是 1这不是重点)。

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

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

基本上,相当于

<<i+1<< 

用 C 语言?

4

3 回答 3

6

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

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

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

于 2012-11-07T15:19:55.273 回答
0

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

于 2012-11-07T15:19:53.573 回答
0

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

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

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

于 2012-11-07T15:24:09.823 回答