C程序没有输入for循环,而是递增循环索引变量?

时间:2014-09-17 04:45:53

标签: c loops for-loop printf

除了已经注释掉的内容之外,这是我的程序的完整文本:

#include <stdio.h>



int main (int argc, char* argv[] ){

   FILE* inFile = fopen(argv[1], "r");

   if(inFile==0){
      printf( "Error opening file, terminating program\n");
      return 1;
      }

   char* charArray = malloc(100*sizeof(char));

   int j=0;

   printf("%i", j);


   for(j=0; j++; j<100){
      printf("%c", charArray[j]);
      printf("%c", '\n');
      }


   printf("%i", j);

   return 0;
   }

我将使用参数text调用我的程序,该参数是我希望它打开的文本文件的名称。我的程序中被注释掉的部分将文本文件读入一个字符数组,我试图在for循环中打印相同的数组。

现在,char数组包含完整的垃圾,但这不是重点 - 重点是,它至少在输出SOMETHING时没有输出ANYTHING!

以下是我得到的输出:

01

不知何故,j正在增加一次,但我甚至没有从for循环中打印任何结束。发生了什么事?

4 个答案:

答案 0 :(得分:3)

更改

for(j=0; j++; j<100)

for(j=0; j<100; j++)

答案 1 :(得分:3)

您的循环格式错误。

for循环的格式为:

for(INITIALIZATION; CONDITION; INCREMENT/DECREMENT){

}

您将CONDITIONINCREMENT/DECREMENT混为一谈

变化:

for(j=0; j++; j<100)

要:

for(j=0; j<100; j++)

答案 2 :(得分:3)

供您参考

for..loop的有用语法是

for ( variable initialization; condition; variable update ) {
  Code to execute while the condition is true
}

所以请将for..loop更改为

for(j=0; j<100; j++)

另外,为什么要使用\n单独打印printf("%c", '\n');。它应该就像

一样
printf("%c\n", charArray[j]);

答案 3 :(得分:1)

替换此

for(j=0; j++; j<100)

有了这个

for(j=0; j<100; j++)