Я пытаюсь создать основную функцию, которая принимает аргументы командной строки, которые позволяют этой программе открывать два файла (пути указаны в командной строке) и объединяет два файла по одной строке за раз в один вывод.Первый предоставленный файл - это строки текста.Удалите все пробелы, табуляцию и новые строки.Вторые файлы представляют собой список чисел, к каждому из которых необходимо добавить по одному при печати на выходе.Кроме того, два столбца должны быть разделены символом табуляции.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
const int MAXLEN = 4096;
const int MAXLINES = 10;
int main(int argc, char *argv[]) {
char buffer[MAXLEN];
char buffer2[MAXLEN];
FILE *fp = fopen(argv[1], "r");
FILE *fp2 = fopen(argv[2], "r");
if (!fp || !fp2) {
perror ("Not Found");
exit (EXIT_FAILURE);
}
int n = 0;
while((n < MAXLINES) && (fgets (buffer, sizeof (buffer), fp)) && (fgets(buffer2, sizeof (buffer2), fp2))) {
printf("%s\t%s", buffer, buffer2);
n++;
}
}
fclose(fp);
fclose(fp2);
return 0;
}
Например, для ввода и вывода:
./c2 test/c2-testa test/c2-testb
Test A 11
Test B 51
Test C 91
Test D 26
Test E 17
Test F 76
Это то, что я получил после команды gcc
:
c2:
c2.c:53:7: warning: data definition has no type or storage class
fclose(fp);
^~~~~~
c2.c:53:7: warning: type defaults to ‘int’ in declaration of ‘fclose’ [-Wimplicit-int]
c2.c:53:7: warning: parameter names (without types) in function declaration
c2.c:54:7: warning: data definition has no type or storage class
fclose(fc2);
^~~~~~
c2.c:54:7: warning: type defaults to ‘int’ in declaration of ‘fclose’ [-Wimplicit-int]
c2.c:54:7: warning: parameter names (without types) in function declaration
c2.c:56:7: error: expected identifier or ‘(’ before ‘return’
return 0;
^~~~~~
c2.c:58:7: error: expected identifier or ‘(’ before ‘}’ token
}
^
make: *** [Makefile:31: c2.o] Error 1