Я довольно новичок в c и хочу написать программу, которая принимает аргументы командной строки, которая читает текст из файла с разделителями и записывает содержимое в новый файл с другим разделителем.
Ввод cmd будет выглядеть примерно так:
prog.exe i: \ test.txt i: \ new.txt запятая
для чтения из текстового файла test.txt с разделителями-запятыми и копирования его содержимого в текстовый файл new.txt с помощью разделителя табуляции.
Я уже сделал часть программы, но я застрял при замене разделителя.
int main(int argc,char *argv[])
{
FILE *fpr,*fpw;
char dr[2]="",dw[2]="",buffer[300];
fpr = fopen(argv[1], "r");
fpw = fopen(argv[2], "w");
if (strcmp("comma", argv[3]) == 0)
strcpy(dr,",");
else if (strcmp("space", argv[3]) == 0)
strcpy(dr, " ");
else if (strcmp("tab", argv[3]) == 0)
strcpy(dr, "\t");
if (strcmp("comma", argv[4]) == 0)
strcpy(dw, ",");
else if (strcmp("space", argv[4]) == 0)
strcpy(dw, " ");
else if (strcmp("tab", argv[4]) == 0)
strcpy(dw, " ");
while (!feof(fpr)) {
fgets(buffer,300,fpr);//gets whole line to replace delimiter
for (int i = 0; buffer[i]!='\n' && buffer[i] != '\0'; i++) {
if (buffer[i]==dr){}
}
}
return 0;
}
dr-> разделитель в файле для чтения; dw-> разделитель, который будет использоваться при записи;
fpr-> указатель файла для файла для чтения; fpw-> указатель файла для файла, который будет записан в
РЕДАКТИРОВАТЬ: удалось заставить его работать. Я не знал, что \ t рассматривается как 1 символ.