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

Возникли совсем не понятные мне ошибки в программе - C++

Восстановить пароль Регистрация
 
andrykrav
8 / 8 / 0
Регистрация: 17.10.2012
Сообщений: 70
17.02.2014, 22:55     Возникли совсем не понятные мне ошибки в программе #1
В Code::Blocks написал в принципе простенькую программу, но во время исполнения появилась совсем не понятная мне проблема.

Вот код:

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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int m=6;
    int n=5;
    int a[m][n];
    printf("Hello world!\n");
 
    FILE* fa;
    fa = fopen("file_a.txt", "r");
 
    for (int i=0; i<6; i++)
    {
        for (int j=0; j<5; j++)
        {
            fscanf(&fa, "%d", a[i,j]);
        }
    }
 
    fclose(&fa);
 
    return 0;
}
а в результате выдало такие проблемы

C:\User\andriy\Desktop\asd\main.c|14|error: 'for' loop initial declarations are only allowed in C99 mode|
C:\User\andriy\Desktop\asd\main.c|16|error: 'for' loop initial declarations are only allowed in C99 mode|

Объясните мне в чем проблема и как это исправить.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 22:55     Возникли совсем не понятные мне ошибки в программе
Посмотрите здесь:

C++ Не понятные ошибки
C++ Помогите мне пожалуйста найти ошибки в алгоритме
C++ Ошибки в программе
Исправьте мне ошибки в коде C++
C++ Исправьте мне ошибки!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
17.02.2014, 22:57     Возникли совсем не понятные мне ошибки в программе #2
andrykrav, компилятор? у Вас стоит режим компиляции с++98 или раньше.
raccoonlove
Заблокирован
17.02.2014, 23:01     Возникли совсем не понятные мне ошибки в программе #3
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int m=6;
    int n=5;
    int a[m][n], i, j;
    printf("Hello world!\n");
 
    FILE* fa;
    fa = fopen("file_a.txt", "r");
 
    for (i=0; i<6; i++)
    {
        for (j=0; j<5; j++)
        {
            fscanf(&fa, "%d", a[i,j]);
        }
    }
 
    fclose(&fa);
 
    return 0;
}
В С89 запрещено обьявлять переменную внутри цикла for.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
17.02.2014, 23:04     Возникли совсем не понятные мне ошибки в программе #4
Цитата Сообщение от andrykrav Посмотреть сообщение
fscanf(&fa, "%d", a[i,j]);
C++
1
fscanf(&fa, "%d", a[i][j]);
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
17.02.2014, 23:05     Возникли совсем не понятные мне ошибки в программе #5
andrykrav, да-да, прошу прощения. если у Вас проект С, а не С++, то во-первых, в С так вообще делать нельзя, а во-вторых, Вы промахнулись разделом
DrOffset
6425 / 3799 / 880
Регистрация: 30.01.2014
Сообщений: 6,593
17.02.2014, 23:07     Возникли совсем не понятные мне ошибки в программе #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от andrykrav Посмотреть сообщение
В Code::Blocks написал в принципе простенькую программу, но во время исполнения появилась совсем не понятная мне проблема.
Объясните мне в чем проблема и как это исправить.
Проблем там много на самом деле:
Если компилируешь файл с расширением *.с, то объявление переменной в цикле возможно только в С99 и новее. В Code::Blocks можно задать опцию в свойствах сборки (Other options -std=c99). Повторюсь, это все для С. Если С++, то должно работать сразу на любой версии (включая с++98).
Теперь по остальным проблемам:
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int m=6; /* должно быть const int m=6 */
    int n=5;  /* должно быть const int n=5 */
    int a[m][n];
    printf("Hello world!\n");
 
    FILE* fa;
    fa = fopen("file_a.txt", "r");
 
    for (int i=0; i<6; i++)
    {
        for (int j=0; j<5; j++)
        {
            fscanf(&fa, "%d", a[i,j]); /* должно быть  fscanf(fa, "%d", a[i][j]); */
        }
    }
 
    fclose(&fa); /* должно быть fclose(fa); */
 
    return 0;
}
Yandex
Объявления
17.02.2014, 23:07     Возникли совсем не понятные мне ошибки в программе
Ответ Создать тему
Опции темы

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