c - 输入字符串数组不会显示?

标签 c for-loop format

我使用 C,我应该将数字(不知道有多少)输入格式化为一列,而不将它们存储到整数数组中。我不明白为什么我的代码无法读取输入并输出它。请帮忙。

#include <stdio.h>
#include <stdlib.h>

int main() {
    int i;
    char *nums[400];

    for (i=0; i<nums; i++) {
        scanf(nums[i]);
        printf( "%.*s", 3, nums[i] );
    }
    return 0;
}

最佳答案

您有一个包含 400 个指针的数组,但您从未初始化过它们。相反,您可以声明一个二维数组:

char nums[400][4];

然后您尝试使用 nums 作为 for 循环的限制。你真正想要的是nums中的元素数量,即sizeof(nums)/sizeof(nums[0]);或者您可以定义一个宏来指定数组的大小。

接下来,您省略了 scanf() 的格式字符串参数。

#include <stdio.h>
#include <stdlib.h>

#declare SIZE 400

int main()
{

  int i;
  char *nums[SIZE][4];

  for(i=0; i<SIZE; i++){

    scanf("%3s", nums[i]);
    printf( "%.*s", 3, nums[i] );    
  }
  return 0;
}    

关于c - 输入字符串数组不会显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380364/

相关文章:

c - OpenGL 存储每个形状的变量,没有任何重复

c - 如何以列表或数组的形式获取 $PATH 中的目录?

c++ - 如何退出for循环内嵌套的if-else语句?(C/C++)

python - os.walk 和排序以数字开头的文件名

go - 可变浮点精度格式字符串

python - 本地化的十进制数字格式

java - JNI 段错误

c - intmax_t 文字的后缀

matlab删除矩阵计算中的for循环

java - java中的millis字符串格式