在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语言编写?
答案 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所需的&
指针运算符。