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

Возникает ошибка при использовании fscanf - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ warning C4005: '_WIN32_WINDOWS' : macro redefinition http://www.cyberforum.ru/cpp-beginners/thread142889.html
есть программа ,при компилирование выдает ошибку такого рода -------------------Configuration: DIPLOM_6 - Win32 Debug-------------------- Compiling... DIPLOM_6.cpp c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(119) : warning C4005: '_WIN32_WINDOWS' : macro redefinition i:\diplom_9\diplom_6\targetver.h(20) : see previous definition of '_WIN32_WINDOWS' NOTE:...
C++ Where to download C++ Where to download C++. Write plese! :scratch: Throw link! http://www.cyberforum.ru/cpp-beginners/thread142875.html
C++ Задана динамическая матрица. Найти минимальный элемент матрицы
Задана динамическая матрица размером NxN. Найти минимальный элемент матрицы.
Производный класс! Не могу понять в чем ошибка!! C++
#ifndef LR_H #define LR_H #include <stdexcept> template <class T> class LR: public Rat { // Ошибка expected class-name before '{' token public: template <class v> friend ostream &operator<<(ostream& out, Rat<v> &t); };
C++ Где кроется ошибка при заполнении массива структур? http://www.cyberforum.ru/cpp-beginners/thread142830.html
У меня ввод данных в массив не происходит, только вот не пойму почему, может быть кто-нибудь подскажет, в чем кроется ошибка? Я не успеваю ввести данные в массив, как у меня появляется: Enter hobby #1: Enter ooplevel #1: Enter fullname #2 Enter hobby #2: Enter ooplevel #2: Enter fullname #3 Enter hobby #3: Enter ooplevel #3: Функция getinfo принимает 2 аргумента: указатель на первый...
C++ файлы на завтра надо лабу с файлами сделать, а я с ними не работал никогда(( дайте пожалуйста кусок кода или маленькую прогу чтобы разобраться (ввод,вывод,как к файлу обратиться) подробнее

Показать сообщение отдельно
вандал
126 / 126 / 1
Регистрация: 20.11.2009
Сообщений: 498
09.06.2010, 17:19  [ТС]     Возникает ошибка при использовании fscanf
даже если ввожу посимвольное считывание все равно если ставлю до конца EOF то вообще в цикл не входит а если ставлю например до какого-нить символа то цикл не останавливается и возникает виндовская ошибка память не может быть read.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <vector>
#include <map>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(int argc, char **argv) {
    FILE *fi; 
    vector<int> vt;
    map<string, vector<int> > sht;
    char b[32], ch;
    int i = 0, instr = 1, l = 0;
    string word, c, word2;
    if(argc < 2) {
        printf("error: no input file specified\n"
            "usage: %s filename\n", argv[0]);
        goto done;
    }
    if(!(fi = fopen(argv[1], "r"))) {
        printf("error: can't open file %s\n", argv[1]);
        goto done;
    }
      clock_t timer;
        cout << "enter search word: " << endl;
    cin >> word;
    cout << "looking for word " << word << "..." << endl;
    timer = clock();     
    while ((ch = fgetc(fi)) != EOF){   
       if ((ch != ' ')||(ch != '\n')){
             c[i] = ch;
             i++;
       //cout << "test5" << endl;
       }
       else{
          cout << "test6" << endl;
          l = c.length();
          cout << l;
         if((c[l-1] == ',')||(c[l-1] == '.')||(c[l-1] == '!')||(c[l-1] == '?')){
             word2.replace(0,l-1,c);
             cout << word2 << endl;
             if(word2 == sht.find(word2)->first){
                vector<int>& vtt = sht.find(word2)->second;
                vtt.push_back(instr);
             cout << "test1"<< endl;
             }
             else{
                while(!vt.empty()) vt.pop_back();
                vt.push_back(instr);
                sht.insert(std::pair<string,vector<int> >(c,vt));
                cout << "test2"<< endl;
             } 
          }
          if(c[l-1] == '\n')
             instr++;
       i = 0;
       }
    }
    for( map<string, vector<int> >::iterator it = sht.begin(); it != sht.end(); ++it ){
       cout << it->first << "n";
    }
 
      cout << "std::map took " << static_cast<double>(clock() - timer)/CLOCKS_PER_SEC << " second\n";
 
done:
    return 0;
}
Добавлено через 5 часов 11 минут
всем спасибо ошибка возникала из-за того что был поврежден фаил с которого читал)
 
Текущее время: 04:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru