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

Ругается на "!=" - C++

Восстановить пароль Регистрация
 
][акер
#define книжный_червь Я
 Аватар для ][акер
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
29.06.2010, 20:47     Ругается на "!=" #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
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <conio.h>
#include <string>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russia");
    char a;
    string nfile;
    char* b;
    unsigned int mb,numb = 0,size,curs,q,ba;
    cout << "Вы хотите разделить [/] файл или объединить [+] в файл другие файлы? ";
    cin >> a;
    switch (a) {
    case '/':
        cout << "Введите директорию файла, которого надо разделить: ";
        getline(cin,nfile);
        cout << "На сколько mb надо его разделить? ";
        cin >> mb;
        cout << "У файлов будет имя 0.txt, 1.txt, 2.txt и т.д." << endl;
        cout << "Вы можете их переименовать, если Вам надо." << endl;
        ifstream file(nfile);
        ofstream file2;
        file.seekg(0,ios::end);
        size = file.tellg();
        file.close();
        file.open(nfile);
        ba = mb * 1024 * 1024; // Думаю будет переполнение...
        do {
            itoa(numb,b,q);
            file2.open(strcat(b,".txt"));
            curs += ba; // Думаю будет перепонение...
            while ( ( file.tellg() != curs ) || ( !file.eof( ) ) ) { // Вот тут ошибку выдаёт. Ругается на "!=".
                file.get(a);
                file2.put(a);
            }
            numb++;
            file2.close();
        } while (curs >= size);
        break;
    }
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
29.06.2010, 21:02     Ругается на "!=" #2
C++
1
while ( ( (int)file.tellg() != curs ) || ( !file.eof( ) ) )
У меня вот так например скомпилилось.

Добавлено через 1 минуту
А какой у вас компилер? Просто у меня студия вот такие штуки не разрешает.
ifstream file(nfile);
][акер
#define книжный_червь Я
 Аватар для ][акер
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
29.06.2010, 22:14  [ТС]     Ругается на "!=" #3
Visual Studio 2010 Ultimate. Я так и думал, что надо в int преобразовать, но если не ошибаюсь, то эта функция и возвращает int...

Добавлено через 7 минут
Лови +1!
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
29.06.2010, 22:17     Ругается на "!=" #4
[акер;832842]но если не ошибаюсь, то эта функция и возвращает int...
tellg() возвращает long.

Цитата Сообщение от Хохол Посмотреть сообщение
А какой у вас компилер? Просто у меня студия вот такие штуки не разрешает.
ifstream file(nfile);
Раз nfile имеет тип string попробуй так
C++
1
fstream file(nfile.c_str());
][акер
#define книжный_червь Я
 Аватар для ][акер
182 / 93 / 6
Регистрация: 30.01.2010
Сообщений: 780
29.06.2010, 22:24  [ТС]     Ругается на "!=" #5
kazak, спасибо! А вот с
C++
1
fstream file(nfile.c_str());
у меня проблем нету, а метод c_str() я знаю!))))
Yandex
Объявления
29.06.2010, 22:24     Ругается на "!="
Ответ Создать тему
Опции темы

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