Аргументы 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];

Объяснение кода листинга программы

  1. В данном коде используется оператор = для присваивания значения переменной fileName.
  2. Значение переменной fileName получается из массива argv с индексом i.
  3. Тип данных переменной fileName - char *, что означает, что это указатель на символ.
  4. Значение переменной fileName будет представлять собой имя файла, переданное в качестве аргумента при запуске программы.
  5. Значение переменной fileName будет сохранено в переменной fileName и может быть использовано в дальнейшем коде для работы с файлом.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5