S,John 2 MATH101 CSE100
K,Jack 2 BLAW203 MATH101
B,Brown 2 STAT253 MATH259
G,Mary 3 MATH259 HIST111 STAT253
这是我的txt文件,我想转换邻居列表。
矩阵中的课程以数字命名,如下所示:
0 - MATH101
1 - CSE100
2 - BLAW203
3 - STAT253
4 - MATH259
5 - HIST111
如何在C中读取和转换附件列表?谢谢。
答案 0 :(得分:0)
这是解析部分 - 现在使用结构创建一个列表并检查已经插入的元素。
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int main()
{
FILE *in = fopen("newfile","r");
FILE *out = fopen("newfile2.txt","w");
size_t snby = 1024;
char *lineBuf = malloc(1024*sizeof(char));
char *tmpVal;
char *maxVal;
int loop = 0;
int gar = 0;
int line = 0;
while(getline(&lineBuf, &snby, in) != -1)
{
if (gar == 0)
{
fprintf(out, "%d - ", line);
line++;
gar++;
}
else
{
fprintf(out, "\n%d - ", line);
line++;
}
line++;
int mark = 0;
tmpVal = lineBuf;
while(mark != 2)
{
if (*tmpVal == ' ') mark++;
tmpVal++;
}
while(*tmpVal != '\n')
{
if(*tmpVal == ' ')
{
fprintf(out, "\n%d - ", line);
line++;
}
else
{
fprintf(out, "%c", *tmpVal);
}
tmpVal++;
}
}
free(lineBuf);
fclose(out);
fclose(in);
return 0;
}
答案 1 :(得分:0)
这是可以做到的一种方式:
如果需要,here是扰码代码。