【问题标题】:Output variable contents in a string in C在C中的字符串中输出变量内容
【发布时间】:2012-11-07 15:17:46
【问题描述】:

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

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

(displays: "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 语言?

【问题讨论】:

标签: c string variables output


【解决方案1】:

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

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

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

【讨论】:

  • 我相信 scanf() 无论如何都会导致 fflush() 发生(假设我们正在谈论一个重要的终端),不是吗?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2013-08-22
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      相关资源
      最近更新 更多