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

Не могу понять в чем ошибка - C++

Восстановить пароль Регистрация
 
Арсен_
 Аватар для Арсен_
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 27
10.12.2012, 21:43     Не могу понять в чем ошибка #1
Добрый вечер, есть задача: ********/index.asp?main=task&id_task=315

Я решаю ее таким образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
 
char x,k,p;
 
int main()
{
    std::fstream I("input.txt"), O("output.txt", 2);
    k = I.get();
    while(I && k != 13)
    {
        if (!((k > 47 && k < 58) || 
                    (k > 64 && k < 91)) ) p = 0;
        if(k > x) x = k; k = I.get();
    }
    O << ((x != 48) ? ((!p) ? (x < 58) 
                        ? x - 47 : x - 54 : -1) : 2); 
}
У меня на компьютере все работает как надо, без ошибок. На ms visual c++, на сервере тоже стоит компилятор visual c++

Но когда отправляю на сервер для проверки, то выдает ошибку при компиляции.

В чем можнт быть проблема?

PS sorry за гавнокод, это просто я писал таким извращенным кодом, дабы уменьшить размер кода.

Добавлено через 7 минут
Вот от сервера приходят ошибки:
Код
task.cpp
task.cpp(11) : error C2678: binary '&&' : no operator found which takes a left-hand operand of 
type 'std::fstream' (or there is no acceptable conversion)
task.cpp(11) : fatal error C1903: unable to recover from previous error(s); stopping compilation
Чем ему мой оператор && не устраивает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 21:43     Не могу понять в чем ошибка
Посмотрите здесь:

не могу понять в чем ошибка. C++
Не могу понять в чем ошибка C++
C++ не могу понять в чем ошибка
Не могу понять в чем ошибка C++
C++ не могу понять в чем ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 183
10.12.2012, 21:47     Не могу понять в чем ошибка #2
Арсен_, попробуй написать через freopen, должно помочь
Арсен_
 Аватар для Арсен_
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 27
10.12.2012, 21:52  [ТС]     Не могу понять в чем ошибка #3
Цитата Сообщение от rinat_w Посмотреть сообщение
Арсен_, попробуй написать через freopen, должно помочь
Спасибо, но вряд ли эв этом проблема.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.12.2012, 21:54     Не могу понять в чем ошибка #4
Цитата Сообщение от Арсен_ Посмотреть сообщение
C++
1
while(I && k != 13)
C++
1
while(!I.eof() && k != 13)
Цитата Сообщение от Арсен_ Посмотреть сообщение
if(k > x)
x нигде не инициализировано.
Арсен_
 Аватар для Арсен_
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 27
10.12.2012, 22:55  [ТС]     Не могу понять в чем ошибка #5
PS изменил на это разаботало

Код
std::ifstream I("input.txt");
	std::ofstream O("output.txt");
Но почему первый способ не пашет?

Добавлено через 1 час 1 минуту
Цитата Сообщение от kazak Посмотреть сообщение
C++
1
while(!I.eof() && k != 13)
x нигде не инициализировано.

Спасибо, а почему while(I && k != 13) не работает ? Ведь оно пости ту же функцию выполняет, они должно вернуть ложь если I.eof(); или нет?

> нигде не инициализировано

Во всяком случае это работает))
Это мне местные форумчане подсказали, если переменная объвлена как глобальная, то она сама инициализируется.
int a; инициализируется 0
char b; инициализируется NULL - если не ошебаюсь)
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
10.12.2012, 23:17     Не могу понять в чем ошибка #6
Цитата Сообщение от Арсен_ Посмотреть сообщение
Это мне местные форумчане подсказали, если переменная объвлена как глобальная, то она сама инициализируется.
правильно подсказали глобальные переменные инициализируются 0

Цитата Сообщение от Арсен_ Посмотреть сообщение
I.eof(); или нет?
нет
это означает конец файла а
C++
1
while(I
равносильно
C++
1
while(I!=NULL
т.е файл не открылся
может быть
C++
1
 I &&
ищет переопределенный && для потока

Добавлено через 11 минут
Цитата Сообщение от Арсен_ Посмотреть сообщение
k != 13
вот это можешь уменьшить на 1 знак
k - 13
Yandex
Объявления
10.12.2012, 23:17     Не могу понять в чем ошибка
Ответ Создать тему
Опции темы

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