无法从 c 中的 stdin 打印 char 数组

标签 c char

我试图从标准输入读入,然后打印每个字符串中的每个字符,但由于某种原因它不会打印任何内容......

#include <stdio.h>
#include <string.h>

int main(void){

  int i;
  char string[10];
  while (fgets(string,10,stdin)!=NULL){
    for(i=0;i<strlen(string);i++);{
      printf("%c",string[i]);
    }
    strcpy(string,"");
  }
  return 0;
}

最佳答案

您有一个无关的分号。

试试这个:

...
for(i=0;i<strlen(string);i++){
    for...

注意缺少“;”在循环体之前。

代码中循环体是空的,因为它只是一个分号。 您打算作为循环体的部分仅在之后执行一次。在那一次执行期间,您只是打印字符串末尾的空字符。

关于无法从 c 中的 stdin 打印 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30408312/

相关文章:

c++ - unsigned 关键字可以以非显而易见的方式使用吗?

c - 为什么我的循环无效?

c - valgrind 的问题

c - char * 和 char[] 的区别

c++ - klocwork CWARN.SIGNEDBIT on unsigned char

mysql - CHAR(n) 如何以二进制表示其数据?

c++ - 对于我的关键代码部分,如何在短时间内关闭操作系统中切换线程的中断?

Java 相当于 C 中的 fscanf

c++ - 使用 Char 数组的 ROT13 实现

c - 如何在 Dev C++ 中使用像 ╔ ═ 和 ╗ 这样的字符作为字符串的一部分?