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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Арсен_
 Аватар для Арсен_
2 / 2 / 0
Регистрация: 25.11.2012
Сообщений: 27
#1

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

10.12.2012, 21:43. Просмотров 353. Ответов 5
Метки нет (Все метки)

Добрый вечер, есть задача: ********/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++
C++ Код программы на языке С++. Не могу понять в чем ошибка
C++ Работа с файлами, не могу понять в чем ошибка
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
3030 / 2351 / 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
Модератор
6453 / 4919 / 451
Регистрация: 14.02.2011
Сообщений: 16,320
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     Не могу понять в чем ошибка
Ответ Создать тему
Опции темы

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