除了已经注释掉的内容之外,这是我的程序的完整文本:
#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循环中打印任何结束。发生了什么事?
答案 0 :(得分:3)
更改
for(j=0; j++; j<100)
到
for(j=0; j<100; j++)
答案 1 :(得分:3)
您的循环格式错误。
for
循环的格式为:
for(INITIALIZATION; CONDITION; INCREMENT/DECREMENT){
}
您将CONDITION
和INCREMENT/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++)