printf()的奇怪行为

时间:2015-02-19 06:29:37

标签: c printf

因此我无法让printf在嵌套for循环时输出任何内容

例如:

printf("hello ");
for(int i =0; i< 4; i++)
   for(int j = 0; j < 5; j++)
   printf("world");

这只会输出单词hello而不能输出单词&#34; world&#34;。我试过fflush(stdout),但似乎命令无法解决问题。我正在使用Mac。有人可以就如何解决这个问题提出建议吗?

2 个答案:

答案 0 :(得分:1)

链接link中提供的代码问题是

for( i = 0; i > m; i++)

您使用的条件是i > m,应该是i < m

答案 1 :(得分:0)

假设您正在使用printf和循环进行输出实验。首先你有程序:

#include <stdio.h>

int main(int argc, char * argv[])
{
    printf("hello ");
    return 0;
}

并且该程序成功编译并运行。

比你添加循环,比如:

#include <stdio.h>

int main(int argc, char * argv[])
{
    printf("hello ");
    for(int i =0; i< 4; i++)
       for(int j = 0; j < 5; j++)
            printf("world ");
    return 0;
}

然后在你的IDE中按下魔术按钮 - 这个按钮(或热键组合)应该重新编译你的项目并启动你的程序....但它没有......并且只运行以前编译的代码(没有循环)

因此,请仔细检查编译器中的消息,然后尝试以下操作(在每个步骤之后尝试再次编译并运行程序):

1)在你的程序开头放置计数器声明:

#include <stdio.h>

int main(int argc, char * argv[])
{
    int i;
    int j;
    printf("hello ");
    for(i = 0; i< 4; i++)
       for(j = 0; j < 5; j++)
            printf("world ");
    return 0;
}

2)使用源代码将文件重命名为* .cpp

3)清理并重建您的项目(这些是IDE的特殊选项,可确保删除所有预编译的程序部分,并构建新的部分)