Аргументы main - пояснить природу ошибки - C (СИ)
Формулировка задачи:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STRING_SIZE 255
int main(int argc, char *argv[])
{
const char outfileName[] = "output.txt";
int k = argc - 1;
if (k == 0)
{
return 1;
}
FILE *outFile = NULL;
fopen_s(&outFile, outfileName, "w");
for (int i = 1; i <= k; i++)
{
char stringFromFile[MAX_STRING_SIZE] = {'\0'};
char fileName[] = argv[i][SPOILER][/SPOILER]
FILE *pFile = NULL;
fopen_s(&pFile, fileName, "r");
if (pFile == NULL)
{
printf("File '%s' wasn't opened.\n", fileName);
}
else
{
while(!feof(pFile))
{
fgets(stringFromFile, MAX_STRING_SIZE, pFile);
fprintf(outFile, stringFromFile);
}
fclose(pFile);
}
}
fclose(outFile);
printf("Done.");
return 0;Решение задачи: «Аргументы main - пояснить природу ошибки»
textual
Листинг программы
char *fileName = argv[i];
Объяснение кода листинга программы
- В данном коде используется оператор
=для присваивания значения переменнойfileName. - Значение переменной
fileNameполучается из массиваargvс индексомi. - Тип данных переменной
fileName-char *, что означает, что это указатель на символ. - Значение переменной
fileNameбудет представлять собой имя файла, переданное в качестве аргумента при запуске программы. - Значение переменной
fileNameбудет сохранено в переменнойfileNameи может быть использовано в дальнейшем коде для работы с файлом.