老师布置作业,用C编写程序,运行时,提示输入某个文本文件的路径,确定后,将该文本文件从第6行开始,分两行输出它的第3和第4列到一个新的文本文件中,空格用“_”代替,然后关闭文件(原文本文件的列数不确定),由于平时学习不用功,现在只能求助大家,好心人帮帮忙啊
參考答案:int main()
{
int iLineNum = 0; /*记录读到了第几行*/
char strInputFile[1024]; /*输入文件名,带全路径*/
char strOutputFile[1024]; /*输出文件名,带全路径,文件名为在输入文件名末尾加上.ok*/
char strRecord[1024]; /*从文本文件中读出的记录*/
char strCol3[1024]; /*每行第三列的记录*/
char strCol4[1024]; /*每行第四列的记录*/
int iFlag = 0; /*标识输出行的位置*/
scanf("please input file path:%s\n", strInputFile);
sprintf(strOutputFile. "%s.ok", strInputFile);
File* fp;
fp = fopen(strInputFile, "r");
if (NULL == fp)
{
exit(-1);
}
int iLen = 0;
while (1)
{
if (feof(fp))
{
break;
}
fgets(strRecord, 1024, fp);
iLineNum++;
if (iLineNum < 6)
{
continue;
}
iLen = strlen(strRecord);
if (iLen < 3 || ' ' == strRecord[2])
{
strCol3[iFlag] = '_';
}
else
{
strCol3[iFlag] = strRecord[2];
}
if (iLen < 4 || ' ' == strRecord[3])
{
strCol4[iFlag] = '_';
}
else
{
strCol4[iFlag] = strRecord[3];
}
iFlag++;
if (iFlag > 1024)
{
printf("too much line.\n");
exit(-1);
}
}
fclose(fp);
fp = fopen(strOutputFile, "w+");
if (NULL == fp)
{
exit(-1);
}
fputs(fp, strCol3, 1024);
fflush(fp);
fputs(fp, strCol4, 1024);
fclose(fp);
return 0;
}