C 代码在windows中的代码块上运行,但在linux上不提供输出
我不熟悉在windows中编码和使用代码块。但是现在我需要在Linux系统中运行一段代码,但是我没有得到windows系统上得到的输出。请帮忙解决这个问题 “我的代码”的输入位于包含以下输入的文本文件中: 5C 代码在windows中的代码块上运行,但在linux上不提供输出,c,linux,codeblocks,C,Linux,Codeblocks,我不熟悉在windows中编码和使用代码块。但是现在我需要在Linux系统中运行一段代码,但是我没有得到windows系统上得到的输出。请帮忙解决这个问题 “我的代码”的输入位于包含以下输入的文本文件中: 5 3012 3 3 4 5 40145 43412 43526 代码从文件中读取文本并打印输出 #include<stdio.h> #include <stdlib.h> #define MAXLITTERM 10 #define MAXTERMS 10 int gi
3012
3 3 4 5
40145
43412
43526 代码从文件中读取文本并打印输出
#include<stdio.h>
#include <stdlib.h>
#define MAXLITTERM 10
#define MAXTERMS 10
int givenSOP[MAXTERMS][MAXLITTERM];
int main()
{
int column[10];
char name[] = "input.txt";
FILE *f1 = fopen("input.txt","r");
int i,j;
char S;
fscanf(f1,"%d",&givenSOP[0][0]);
printf("\n %d\n", givenSOP[0][0]);
for(i=1;i<=givenSOP[0][0];i++)
{
int point = ftell(f1);
column[i] = 0;
S = getc(f1);
S = getc(f1);
while(!feof(f1))
{
if(S=='\n')
{
S = getc(f1);
break;
}
if(S!=' ' && S!='\n')
column[i]++;
S = getc(f1);
}
fseek(f1,point,SEEK_SET);
for(j=0;j<column[i];j++)
{
fscanf(f1,"%d",&givenSOP[i][j]);
}
}
for(i=1;i<=givenSOP[0][0];i++)
{
for(j=0;j<=givenSOP[i][0];j++)
{
printf("%d ",givenSOP[i][j]);
}
printf("\n");
}
return 0;
}
#包括
#包括
#定义MAXLITTERM 10
#定义MAXTERMS 10
int givenSOP[MAXTERMS][MAXLITTERM];
int main()
{
int列[10];
字符名[]=“input.txt”;
FILE*f1=fopen(“input.txt”,“r”);
int i,j;
字符S;
fscanf(f1、%d、&givenSOP[0][0]);
printf(“\n%d\n”,givenSOP[0][0]);
对于(i=1;i“}为什么不简单地(用)读几行,然后用sscanf
解析出这行中的四到五个数字(注意sscanf
),即使可能有更多(或更少)的数字行中的数字,逐行读取输入仍然比从文件中一次读取一个字符并来回跳转更容易处理。至于无法在Linux中运行的问题,您可能会做一些不好的事情,导致未定义的行为。请了解如何调试代码,更具体地说,如何调试我们的代码使用调试器在监视变量及其值的同时逐条检查代码语句。检查fopen
是否成功。可能不会成功,因为input.txt
文件可能不在程序查找它的位置。for(i=1;i