printf () 的奇怪行为
weird behavior with printf ()
所以我无法让 printf 在嵌套 for 循环中输出任何内容
例如:
printf("hello ");
for(int i =0; i< 4; i++)
for(int j = 0; j < 5; j++)
printf("world");
这只会输出单词 hello 而无法输出单词 "world"。我尝试了 fflush(stdout),但似乎该命令无法解决问题。我正在使用 Mac。有人可以就如何解决这个问题提出建议吗?
您在 link link 中提供的代码存在的问题是
for( i = 0; i > m; i++)
您使用的条件是i > m
,而它应该是i < m
。
假设您正在使用 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 的特殊选项,确保程序的所有预编译部分将被删除并构建新的部分)
所以我无法让 printf 在嵌套 for 循环中输出任何内容
例如:
printf("hello ");
for(int i =0; i< 4; i++)
for(int j = 0; j < 5; j++)
printf("world");
这只会输出单词 hello 而无法输出单词 "world"。我尝试了 fflush(stdout),但似乎该命令无法解决问题。我正在使用 Mac。有人可以就如何解决这个问题提出建议吗?
您在 link link 中提供的代码存在的问题是
for( i = 0; i > m; i++)
您使用的条件是i > m
,而它应该是i < m
。
假设您正在使用 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 的特殊选项,确保程序的所有预编译部分将被删除并构建新的部分)