Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Для начинающих, кто занимаеться по -Е.Л. Шиманович С/С++ 
:(
    Опции темы
hip
Дата 5.2.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.2.2007

Репутация: нет
Всего: нет



Здравствуйте! Мне нужно сделать программу, которая будет проверять верность цыфр в файле. Я Сделал, но проблема в том, что программа вместо четырех символов до пробела считует по одному символу. 
Код

include<iostream.h>
 #include<conio.h>
 #include<fstream.h>
 #include<stdio.h>
 void main()
 {
    clrscr();
    char kod;
    cout<<"Program check file. Please, wait."<<endl;
    ifstream op;
    op.open("SH.dat");
    while (! op.eof())
    {
    ofstream of;
    of.open("SHI.sol",ios::app);
    switch(kod)
    {
    case 1260: of<<"1260 "; break;
    case 1261: of<<"1261 "; break;
    case 2260: of<<"2260 "; break;
    case 2261: of<<"2261 "; break;
    case 3260: of<<"3260 "; break;
    case 3261: of<<"3261 "; break;
    case 4260: of<<"4260 "; break;
    case 4261: of<<"4261 "; break;
    case 5260: of<<"5260 "; break;
    case 5261: of<<"5261 "; break;
    case 6260: of<<"6260 "; break;
    case 6261: of<<"6261 "; break;
    case 7260: of<<"7260 "; break;
    case 7261: of<<"7261 "; break;
    case 8260: of<<"8260 "; break;
    case 8261: of<<"8261 "; break;
    case 9260: of<<"9260 "; break;
    case 9261: of<<"9261 "; break;
    case 1270: of<<"1270 "; break;
    case 1271: of<<"1271 "; break;
    case 2270: of<<"2270 "; break;
    case 2271: of<<"2271 "; break;
    case 3270: of<<"3270 "; break;
    case 3271: of<<"3271 "; break;
    case 4270: of<<"4270 "; break;
    case 4271: of<<"4271 "; break;
    case 5270: of<<"5270 "; break;
    case 5271: of<<"5271 "; break;
    case 6270: of<<"6270 "; break;
    case 6271: of<<"6271 "; break;
    case 7270: of<<"7270 "; break;
    case 7271: of<<"7271 "; break;
    case 8270: of<<"8270 "; break;
    case 8271: of<<"8271 "; break;
    case 9270: of<<"9270 "; break;
    case 9271: of<<"9271 "; break;
    case 1280: of<<"1280 "; break;
    case 1281: of<<"1281 "; break;
    case 2280: of<<"2280 "; break;
    case 2281: of<<"2281 "; break;
    case 3280: of<<"3280 "; break;
    case 3281: of<<"3281 "; break;
    case 4280: of<<"4280 "; break;
    case 4281: of<<"4281 "; break;
    case 5280: of<<"5280 "; break;
    case 5281: of<<"5281 "; break;
    case 6280: of<<"6280 "; break;
    case 6281: of<<"6281 "; break;
    case 7280: of<<"7280 "; break;
    case 7281: of<<"7281 "; break;
    case 8280: of<<"8280 "; break;
    case 8281: of<<"8281 "; break;
    case 9280: of<<"9280 "; break;
    case 9281: of<<"9281 "; break;
    case 1290: of<<"1290 "; break;
    case 1291: of<<"1291 "; break;
    case 2290: of<<"2290 "; break;
    case 2291: of<<"2291 "; break;
    case 3290: of<<"3290 "; break;
    case 3291: of<<"3291 "; break;
    case 4290: of<<"4290 "; break;
    case 4291: of<<"4291 "; break;
    case 5290: of<<"5290 "; break;
    case 5291: of<<"5291 "; break;
    case 6290: of<<"6290 "; break;
    case 6291: of<<"6291 "; break;
    case 7290: of<<"7290 "; break;
    case 7291: of<<"7291 "; break;
    case 8290: of<<"8290 "; break;
    case 8291: of<<"8291 "; break;
    case 9290: of<<"9290 "; break;
    case 9291: of<<"9291 "; break;
    case 1300: of<<"1300 "; break;
    case 1301: of<<"1301 "; break;
    case 2300: of<<"2300 "; break;
    case 2301: of<<"2301 "; break;
    case 3300: of<<"3300 "; break;
    case 3301: of<<"3301 "; break;
    case 4300: of<<"4300 "; break;
    case 4301: of<<"4301 "; break;
    case 5300: of<<"5300 "; break;
    case 5301: of<<"5301 "; break;
    case 6300: of<<"6300 "; break;
    case 6301: of<<"6301 "; break;
    case 7300: of<<"7300 "; break;
    case 7301: of<<"7301 "; break;
    case 8300: of<<"8300 "; break;
    case 8301: of<<"8301 "; break;
    case 9300: of<<"9300 "; break;
    case 9301: of<<"9301 "; break;
    case 1310: of<<"1310 "; break;
    case 1311: of<<"1311 "; break;
    case 2310: of<<"2310 "; break;
    default: cout<<"\a Program find error code. This code will be deleted."<<endl;
    }}
    {
    char kod5[3500];
    ifstream inputfile;
    inputfile.open("Data/Delfile.del");
    inputfile>>kod5;
    if (remove(kod5) == 0);
    }
    cout<<"\a Chek file is over. Please click any key to quit.";
    getch();
 }

Пробовал через getline(), но так выбивает непонятную ошибку. 
Код

 #include<iostream.h>
 #include<conio.h>
 #include<fstream.h>
 #include<stdio.h>
 void main()
 {
    clrscr();
    cout<<"Program check file. Please, wait."<<endl;
    ifstream op;
    op.open("SH.вфе");
    while (! op.eof())
    {
    char us[5];
    op.getline(us,sizeof(us),'*');
    ofstream of;
    of.open("SHI.ыщд",ios::app);
    switch(us)
    {
    case 1260: of<<"1260 "; break;
    case 1261: of<<"1261 "; break;
    case 2260: of<<"2260 "; break;
    case 2261: of<<"2261 "; break;
    case 3260: of<<"3260 "; break;
    case 3261: of<<"3261 "; break;
    case 4260: of<<"4260 "; break;
    case 4261: of<<"4261 "; break;
    case 5260: of<<"5260 "; break;
    case 5261: of<<"5261 "; break;
    case 6260: of<<"6260 "; break;
    case 6261: of<<"6261 "; break;
    case 7260: of<<"7260 "; break;
    case 7261: of<<"7261 "; break;
    case 8260: of<<"8260 "; break;
    case 8261: of<<"8261 "; break;
    case 9260: of<<"9260 "; break;
    case 9261: of<<"9261 "; break;
    case 1270: of<<"1270 "; break;
    case 1271: of<<"1271 "; break;
    case 2270: of<<"2270 "; break;
    case 2271: of<<"2271 "; break;
    case 3270: of<<"3270 "; break;
    case 3271: of<<"3271 "; break;
    case 4270: of<<"4270 "; break;
    case 4271: of<<"4271 "; break;
    case 5270: of<<"5270 "; break;
    case 5271: of<<"5271 "; break;
    case 6270: of<<"6270 "; break;
    case 6271: of<<"6271 "; break;
    case 7270: of<<"7270 "; break;
    case 7271: of<<"7271 "; break;
    case 8270: of<<"8270 "; break;
    case 8271: of<<"8271 "; break;
    case 9270: of<<"9270 "; break;
    case 9271: of<<"9271 "; break;
    case 1280: of<<"1280 "; break;
    case 1281: of<<"1281 "; break;
    case 2280: of<<"2280 "; break;
    case 2281: of<<"2281 "; break;
    case 3280: of<<"3280 "; break;
    case 3281: of<<"3281 "; break;
    case 4280: of<<"4280 "; break;
    case 4281: of<<"4281 "; break;
    case 5280: of<<"5280 "; break;
    case 5281: of<<"5281 "; break;
    case 6280: of<<"6280 "; break;
    case 6281: of<<"6281 "; break;
    case 7280: of<<"7280 "; break;
    case 7281: of<<"7281 "; break;
    case 8280: of<<"8280 "; break;
    case 8281: of<<"8281 "; break;
    case 9280: of<<"9280 "; break;
    case 9281: of<<"9281 "; break;
    case 1290: of<<"1290 "; break;
    case 1291: of<<"1291 "; break;
    case 2290: of<<"2290 "; break;
    case 2291: of<<"2291 "; break;
    case 3290: of<<"3290 "; break;
    case 3291: of<<"3291 "; break;
    case 4290: of<<"4290 "; break;
    case 4291: of<<"4291 "; break;
    case 5290: of<<"5290 "; break;
    case 5291: of<<"5291 "; break;
    case 6290: of<<"6290 "; break;
    case 6291: of<<"6291 "; break;
    case 7290: of<<"7290 "; break;
    case 7291: of<<"7291 "; break;
    case 8290: of<<"8290 "; break;
    case 8291: of<<"8291 "; break;
    case 9290: of<<"9290 "; break;
    case 9291: of<<"9291 "; break;
    case 1300: of<<"1300 "; break;
    case 1301: of<<"1301 "; break;
    case 2300: of<<"2300 "; break;
    case 2301: of<<"2301 "; break;
    case 3300: of<<"3300 "; break;
    case 3301: of<<"3301 "; break;
    case 4300: of<<"4300 "; break;
    case 4301: of<<"4301 "; break;
    case 5300: of<<"5300 "; break;
    case 5301: of<<"5301 "; break;
    case 6300: of<<"6300 "; break;
    case 6301: of<<"6301 "; break;
    case 7300: of<<"7300 "; break;
    case 7301: of<<"7301 "; break;
    case 8300: of<<"8300 "; break;
    case 8301: of<<"8301 "; break;
    case 9300: of<<"9300 "; break;
    case 9301: of<<"9301 "; break;
    case 1310: of<<"1310 "; break;
    case 1311: of<<"1311 "; break;
    case 2310: of<<"2310 "; break;
    default: cout<<"\a Program find error code. This code will be deleted."<<endl;
    }}
    {
    char kod5[3500];
    ifstream inputfile;
    inputfile.open("Data/Delfile.del");
    inputfile>>kod5;
    if (remove(kod5) == 0);
    }
    cout<<"\a Chek file is over. Please click any key to quit.";
    getch();
 }

Не знаю что делать, помогите пожалуйста.

Добавлено @ 17:52 
Русские символы вместо расширения это ошибка шрифта, тоесть в программе там вместо "вфе" dat, а "ышд" sol, это я ошибся когда вводил на форуме, в проге все нормально
PM MAIL   Вверх
ip127001
Дата 8.2.2007, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 24.11.2006
Где: Omsk

Репутация: -2
Всего: -1



smile  есть однин пункт в правилах форума, который мне особо люб....приводите сразу 1000-2000
сторок что бы всем становилось понятно, что вы не шутите smile

Добавлено @ 09:36 
конкретней сформулиру задачу...
что в начале, что в конце

а то бошка болит, мочи нет в твоей кулебяке разбираться..проще самому написать
--------------------
aqua currit et debere currere ut currere solebat
PM MAIL   Вверх
hip
Дата 10.2.2007, 19:31 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 5.2.2007

Репутация: нет
Всего: нет



В общем есть файл в котором записано по 4 цыфры через пробел, например: 5673 3452 2673 1561 и т.д. Нужно чтоб программа находила в файле только определенные комбинации из 4 цыфр и помещала их в другой файл. Если использовать для условия if(), то не возможно компилировать так как не хватает памяти. Через switch() все получается, но программа вместо сразу четырех символов считывает по одному и сверяет с условием только одну цыфру, а в условии 4-ех значные цыфры и ничего не выходит. Что можно сделать? Через getline() тоже пробовал, но выбивает непонятную ошибку и компилировать не получается.
Код

 #include<iostream.h>
 #include<conio.h>
 #include<fstream.h>
 #include<stdio.h>
 void main()
 {
    clrscr();
    char kod;
    cout<<"Program check file. Please, wait."<<endl;
    ifstream file;
    file.open("SH.dat");
    while (! file.eof())
    {
    ofstream of;
    of.open("SHI.sol",ios::app);
    switch(kod)
    {
    case 1260: of<<"1260 "; break;
    case 1261: of<<"1261 "; break;
    default: cout<<"\a Program find error code."<<endl;
    }
    cout<<"\a Chek file is over. Please click any key to quit.";
    getch();
 }

PM MAIL   Вверх
nickless
Дата 10.2.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Посмотрел на твой код...
1. main() должна возвращать int
2. после попытки открыть файл, надо проверить, открылся ли он вообще (if (!file) { ... })
3. Каждый файл нужно закрывать после использования (file.close())
4. зачем открывать файл для вывода в цикле? + см. пкт. 3.
5. чтобы сравнить kod с чем-нибудь, надо бы сначала прочитать в него что-нибудь (file >> kod)
6. kod объявлен как char, это одна буква (0<=char<255), а сравнивается он с чем? объяви kod как int
7. switch на несколько сотен цифр это изврат, если нельзя как-то вычислить эти числа, то хотя бы  запиши их в массив и ищи в нём (лучше бинарно, быстрее будет)


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Xenon
Дата 10.2.2007, 22:43 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



nickless, ну это здесь не так уж и важно, так как при выходе из функции он закрывается. Это не так важно тут. Важно, если в пределах одной функции файл используется для ввода, потом для вывода. ИМХО  smile 


--------------------
user posted image  
PM MAIL   Вверх
Anikmar
Дата 10.2.2007, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



Цитата(Xenon @  10.2.2007,  22:43 Найти цитируемый пост)
Важно, если в пределах одной функции файл используется для ввода, потом для вывода. ИМХО    

Я чего-то этого не узрел
    file.open("SH.dat");
    while (! file.eof())
    {
    ofstream of;
    of.open("SHI.sol",ios::app);

Вроде разные...

nickless прав. Весь код выглядит несколько неправильным...
PM MAIL ICQ   Вверх
Xenon
Дата 10.2.2007, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Anikmar, что? Я теоретически говорил. Ну по-любому смысла закрывать особого тут нет (хотя бы потому что код бредовый какой-то) Хотя, если код длинный, мы читателю кода можем таким образом показать, что дальше файл не используется, или что-нибудь еще smile

Это сообщение отредактировал(а) Xenon - 10.2.2007, 23:12


--------------------
user posted image  
PM MAIL   Вверх
nickless
Дата 10.2.2007, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Xenon, да, в принципе файлы закроются при вызове деструктора, но всё равно нехорошо smile 
Да и нечего привыкать к плохому стилю, потом многих ошибок можно будет избежать, если всегда и везде (за исключением особых случаев) всё инициализировать, проверять, закрывать, освобождать...


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Xenon
Дата 11.2.2007, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



nickless, Ну, в принципе, согласен с тобой (особенно после прочтения Саттера о 101 правиле). Но если проводить аналогию с объвлению всех переменных неизменяемых как const(15 совет у Саттера) , то закрытие файла после того, как он больше не понадобится необходимо для того, чтобы показать, что дальше файл не будет использоваться. 
PS. Хотя аналогия такая ... шаткая smile


--------------------
user posted image  
PM MAIL   Вверх
БайкодромКосмодур
Дата 14.3.2007, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.3.2007

Репутация: нет
Всего: нет



Я в программировании полный Лох. Приобрёл книжки, сижу изучаю и в принципе вопросов не возникает, но проблема в том, что необходима практика. Самому придумывать задачи не получается. Может, кто посоветует как быть, может, есть смысл пойти на курсы или на второе высшее.
PM MAIL   Вверх
Dimanc
Дата 18.4.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.4.2007

Репутация: нет
Всего: нет



Решил изучить с++(изучал раньше паскаль). раздобыл книгу дейтела. а первая прога не компилируеться.
У меня bcb 6. расскажите, пожалуйста, подробно, как надо компилировать.(как я понял ошибка то ли в obj- файле, толи даже он не получаеться)
Вот код программы хеллоу ворлд) 
Код
#include<iostream.h>

main()
{
    cout << "добро пожаловать в с++!\n";
    return 0;
}


ps извините, если такой вопрос уже поднимали
PM MAIL   Вверх
mr.Anderson
Дата 18.4.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Код

int main( void )

А потом, говори, что за ошибка. Потому как вряд ли из-за этого небольшого недочета вылезет ошибка obj. Это, скорее, что-то с IDE. Давай ошибку.

Это сообщение отредактировал(а) mr.Anderson - 18.4.2007, 20:22


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Dimanc
Дата 18.4.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 18.4.2007

Репутация: нет
Всего: нет



Цитата

Build
  [Linker Error] Unresolved external '_Form1' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT1.OBJ
  [Linker Error] Unresolved external 'TForm1::' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROJECT1.OBJ

то же самое, если просто main()
PM MAIL   Вверх
Fazil6
Дата 18.4.2007, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



тебе нужно выбрать создание нового проекта и в нем выбрать тип "консольное приложение", а вообще советую взять поновее книгу. Судя по примеру у тебя что-то древнее
Сейчас модно писать такое так
Код

#include<iostream>

int main()
{
    std::cout << "добро пожаловать в с++!\n";
    return 0;
}


Это сообщение отредактировал(а) Fazil6 - 18.4.2007, 23:04
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1075 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.