![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| pharrell |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 27.6.2006 Репутация: нет Всего: нет |
Здравствуйте.Вот код.В принципе он работает.Вот только как все это переписать на чистом Си.Да прогрмма считывает строки из файла в структуру.Поля структуры в строке отделяются запятыми,но читается только одна строка а нужно чтобы все в файле.Заранее больше спасибо.
#include <iostream> #include <fstream> #include <string> using namespace std; struct STRING { string str1, str2, str3, str4, str5; }; void main() { ifstream fin; fin.open("text.txt",ios_base::in); if ( !fin.is_open() ) return; STRING str; getline(fin,str.str1,','); // считывам getline(fin,str.str2,','); getline(fin,str.str3,','); getline(fin,str.str4,','); getline(fin,str.str5,'\n'); cin.get(); } |
|||
|
||||
| tigger |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 456 Регистрация: 30.4.2005 Репутация: нет Всего: 4 |
У тебя читаются все строки в str1, для того чтобы читались все строки по отдельности str1..str5 файл text.txt должен быть вида:
привет, пока, ушел, пришел, нафиг т.е строки заканчиваться твоим символом разделителем. |
|||
|
||||
| Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
|
|||
|
||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
А вот как тот код мог выглядеть на чистом Си. Независимо от того какого вида файл после символа разделителя заполняется следующщее поле структуры.
Это сообщение отредактировал(а) apook - 23.7.2006, 08:55 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
| Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
Так попроще.
|
||||
|
|||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Проще или понятней? Однако кто вообще не врубается легче поймет
мой код (по себе сужу) . А вообще конечно неплохо. Это сообщение отредактировал(а) apook - 23.7.2006, 14:42 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
| apook |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
А вот еще небезызвестная функция по модному написанная
Но мне больше нравится самопал типа:
или такой pause();
или такой clrscr();
и т.д. Один минус не совсем уверен что все всегда будет работать (Маловато знаний) Это сообщение отредактировал(а) apook - 23.7.2006, 16:01 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
||||||||
|
|||||||||
| Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
apook, это ты к чему
|
|||
|
||||
| Oleg_Ci |
|
||||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
pause() и clrscr() у меня не работают, останавливаются оба на int 0x21 . Программирую на Borland C++ Builder 6. А вариант strlen мне такой нравится :
Это сообщение отредактировал(а) Олег4 - 23.7.2006, 17:10 |
||||||
|
|||||||
| apook |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
К тому что любят на подобных форумах на вопрос типа 'помогите разоб раться' предлагать готовые проги в профессиональном стиле
функцию pause() я позаимствовал из одного исходника никому не изве стной программы под названмем fdisk (freedos) clrscr правда сам придумал когда не хотел подключать conio.h чтоб не увеличивать размер проги Но все как наверно понятно эксперимента ради.
Я гружусь по Borland Turbo C++ , хотя однако и на Builder 6 работало, сейчас попробую... -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
||||||
|
|||||||
| Damarus |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
int 0x21, равно как и int 0x10 в NT системах работать не будет, т.к. доступ к прерываниям там возможен только из ring0, а int 0x21 там вообще нет.
Чем плох профессиональный стиль |
||||||
|
|||||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
Привычка у профессионалов обьяснить чтоб никто ниче не понял
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |