【发布时间】:2016-10-01 05:32:50
【问题描述】:
我已经跟踪论坛一个多月了,它可以回答我的大部分问题。但是我一直在努力解决一个我在这里找不到答案的困难(还有其他类似的解决方案,但它并没有解决我的问题)
我已尝试将我庞大的代码块简化为如下所示,
#define DATA_ROW 1 /*I have one data per line*/
int freqstring;
char objectstring;
char string[10];
FILE * file;
freqstring = 0;
while (fscanf_s(file, "%s", &objectstring, 8) == DATA_ROW)
{
string[freqstring] = objectstring;
freqstring = freqstring + 1;
}
for (freqstring = 0; freqstring < 10; freqstring = freqstring + 1)
{
printf("%s", string[freqstring]);
}
现在开始学习 C 编程两个多月了,这是我第一次使用数组。我在输出框中遇到了以下错误消息
警告 C4477:“printf”:格式字符串“%s”需要“char *”类型的参数,但可变参数 1 的类型为“int”
【问题讨论】:
-
"%s", string[freqstring])- 这里缺少一些东西...... -
错误很明显:您声称要打印“字符串”,即 char 数组或 char 指针。您提供的参数是一个字符。不是数组,也不是指针。
-
我已更正所有错别字。 @SamiKuhmonen,但没有将我的它声明为 'char string[10]' 使它成为一个数组,名称为字符串,大小为 10?如果我的问题对你来说听起来很愚蠢,我很抱歉。
-
是的,但是您没有将
string提供给 printf,而是将string[freqstring]提供给该数组中的单个字符。 -
看起来我在这里错过了一些重要的东西。当我进行 for 循环和 printf
string[freqstring]时,难道不是意味着我将打印该数组中的每个元素同时增加 1 吗?
标签: c