Форум программистов, компьютерный форум CyberForum.ru

Непонятно где ошибка в программе - C++

Восстановить пароль Регистрация
 
YoungProgrammer
4 / 4 / 1
Регистрация: 18.01.2011
Сообщений: 206
22.10.2012, 21:55     Непонятно где ошибка в программе #1
Программа должна записывать в output.txt содержимое из файлов заданных через аргумент.
printkey 1 - это типа "ассерта"
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    FILE *pFile = NULL;
    FILE *outFile = NULL;
    int ch;
    char *inputFileName;
    char *outputFileName = "output.txt";
    int i;
    outFile = fopen(outputFileName, "w");
    printf("printkey 1");
    getchar();
    for (i = 1; i <= argc; i++)
    {
        inputFileName = argv[i];
        printf("%s %d \n", inputFileName, i);
        fopen_s(&pFile, inputFileName, "r");
        printf("printkey 2");
        getchar();
        if (pFile = NULL)
        {
            printf("File 's' wasnt opened", argv[i]);
            return -1;
            
        }
        else
        {
            printf("printkey 3");
            getchar();
            while ((ch=fgetc(pFile)) != EOF)
            {
                fputc(ch, outFile);
            }
        }
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13952 / 8783 / 1221
Регистрация: 24.12.2010
Сообщений: 15,891
22.10.2012, 21:57     Непонятно где ошибка в программе #2
Цитата Сообщение от YoungProgrammer Посмотреть сообщение
C
1
for (i = 1; i < argc; i++)
Первое, что бросилось в глаза
YoungProgrammer
4 / 4 / 1
Регистрация: 18.01.2011
Сообщений: 206
22.10.2012, 21:59  [ТС]     Непонятно где ошибка в программе #3
Цитата Сообщение от Байт Посмотреть сообщение
Сообщение от YoungProgrammer
Код C
1
for (i = 1; i < argc; i++)
Первое, что бросилось в глаза
начиная с i пока i <= кол-ву аргв прибавляем i по 1
Байт
 Аватар для Байт
13952 / 8783 / 1221
Регистрация: 24.12.2010
Сообщений: 15,891
22.10.2012, 22:05     Непонятно где ошибка в программе #4
YoungProgrammer, Аргументы нумеруются с 0, argv[0] = имя программы, последний аргумент argv[argc-1]
YoungProgrammer
4 / 4 / 1
Регистрация: 18.01.2011
Сообщений: 206
22.10.2012, 22:09  [ТС]     Непонятно где ошибка в программе #5
Цитата Сообщение от Байт Посмотреть сообщение
YoungProgrammer, Аргументы нумеруются с 0, argv[0] = имя программы, последний аргумент argv[argc-1]
Да дело не в этом, это просто С, первый аргумент правильно "берет", но проблема в fgetc. И зачем мне имя программы?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.10.2012, 15:20     Непонятно где ошибка в программе #6
Цитата Сообщение от YoungProgrammer Посмотреть сообщение
for (i = 1; i <= argc; i++)
Тут выход за границу массива. i < argc.

Добавлено через 26 минут
Цитата Сообщение от YoungProgrammer Посмотреть сообщение
if (pFile = NULL)
C++
1
if (pFile == NULL)
Yandex
Объявления
23.10.2012, 15:20     Непонятно где ошибка в программе
Ответ Создать тему
Опции темы

Текущее время: 08:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru