Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2010, 17:25   #1
marina_sergina
Пользователь
 
Регистрация: 10.05.2010
Сообщений: 17
По умолчанию Строки и файлы в С++

Задание:написать программу,которая считывает текст из файла и выводит на экран только предложения начинающиеся с тире,перед которыми могут находиться только пробельные символы.


#include <fstream>
#include <stdio.h>
#include <windows.h>

char*Rus(const char*text);

using namespace std;

int main(int argc, char *argv[])
{
ifstream fin("text.txt", ios::in);
if(!fin){cout << Rus( " Ошибка " ) << endl; return 1;};
fin.seekg(0,ios::end);
long len = fin.tellg();
char*buf = new char [len +1];
fin.seekg(0,ios::beg);
fin.read (buf, len);
buf[len] = '\0';
long n = 0, i = 0, j = 0;
while(buf[i]){
if((buf[i] == '')&&(buf[i] == '-')){
for (j = n; j <=i; j++) cout << buf[j];
n = i + 1;
}
if (buf[i] == '.' || buf[i] == '!') n = i + 1;
i++;
}
fin.close();
cout << endl;
system("PAUSE");
return 0;
}
char bufRus[256];
char* Rus (const char*text){
CharToOem (text, bufRus);
return bufRus;
}
не работает((((((((((

Последний раз редактировалось marina_sergina; 10.05.2010 в 18:09.
marina_sergina вне форума Ответить с цитированием
Старый 10.05.2010, 18:40   #2
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Код:
#include <fstream>
#include <stdio.h>
#include <windows.h>
#include <iostream.h>

char*Rus(const char*text);

using namespace std;

int main(int argc, char *argv[]) {
ifstream fin("text.txt", ios::in);
if(!fin){
cout << Rus( " Ошибка " ) << endl; return 1;};
fin.seekg(0,ios::end);
long len = fin.tellg();
char*buf = new char [len +1];
fin.seekg(0,ios::beg);
fin.read (buf, len);
long i = 0;
while(buf[i] != '\0'){
	if (buf[i] == ' ' && buf[i+1] == '-')
		while (buf[i+1]!='.' && buf[i]!='\0') {
			cout<<buf[i];
			i++;
		}
		i++;
	}
fin.close();
cout << endl;
system("PAUSE");
return 0;
}
char bufRus[256];
char* Rus (const char*text){
CharToOem (text, bufRus);
return bufRus;
}
Skype: CODERua
[CODER] вне форума Ответить с цитированием
Старый 10.05.2010, 19:31   #3
marina_sergina
Пользователь
 
Регистрация: 10.05.2010
Сообщений: 17
По умолчанию

спасибо большое))))))))только он у меня пропадает(((((((((но главное что получилось!!!!!!!Спасибки)))))
marina_sergina вне форума Ответить с цитированием
Старый 10.05.2010, 19:40   #4
marina_sergina
Пользователь
 
Регистрация: 10.05.2010
Сообщений: 17
По умолчанию

ifstream fin("D:\\text.txt", ios::in);
надо было просто адрес прописать))))
а как сделать так ,что бы выводился текст на русском зыке???вроде руссификацию прописала....я еще только учусь))))
marina_sergina вне форума Ответить с цитированием
Старый 10.05.2010, 20:42   #5
[CODER]
Форумчанин
 
Аватар для [CODER]
 
Регистрация: 02.02.2010
Сообщений: 305
По умолчанию

Цитата:
Сообщение от marina_sergina Посмотреть сообщение
... он у меня пропадает ...
Не понял что пропадает, запустил проверить... В общем немного подправил
Код:
#include <fstream>
#include <stdio.h>
#include <windows.h>
#include <iostream.h>
char*Rus(const char*text);
using namespace std;
int main(int argc, char *argv[]) {
ifstream fin("d:\out.txt", ios::in);
if(!fin){
cout << Rus( " Ошибка " ) << endl; return 1;};
fin.seekg(0,ios::end);
long len = fin.tellg();
char*buf = new char [len +1];
fin.seekg(0,ios::beg);
fin.read (buf, len);
long i = 0;
//-----------------------
bool fl=false;
while(buf[i] != '\0'){
	while (fl) {
		if (buf[i+1]=='\n') {
		     goto m;
		}
		     cout<<buf[i+1];
		     m:
		i++;
		if (buf[i]=='.' || buf[i]=='\0')    { 
                     fl=false;
                     cout<<"\n";  }
		}
	if (buf[i] == ' ' && buf[i+1] == '-')  
                fl = true;
	i++;
}
//----------------
fin.close();
cout << endl;
system("PAUSE");
return 0;
}
char bufRus[256];
char* Rus (const char*text){
CharToOem (text, bufRus);
return bufRus;
}
Цитата:
Сообщение от marina_sergina Посмотреть сообщение
...а как сделать так ,что бы выводился текст на русском зыке???вроде руссификацию прописала...
http://programmersforum.ru/showthread.php?t=94164


П.С. Я так и не понял что пропадало
Skype: CODERua

Последний раз редактировалось [CODER]; 11.05.2010 в 09:00.
[CODER] вне форума Ответить с цитированием
Старый 11.05.2010, 00:21   #6
marina_sergina
Пользователь
 
Регистрация: 10.05.2010
Сообщений: 17
По умолчанию

спасибки)))он просто вылетал у меня,я уже исправила))))
marina_sergina вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файлы и строки зашифрованные Из_Астрала Помощь студентам 6 12.05.2010 11:13
строки и файлы в с++ LovingDaisy Общие вопросы C/C++ 2 21.01.2010 00:20
Строки и файлы. Шифрование mishanic Общие вопросы C/C++ 2 14.12.2009 17:11
Файлы, строки. Паскаль Safary Помощь студентам 6 08.12.2008 18:04
Строки и файлы BR@BUS Общие вопросы Delphi 5 08.04.2008 23:54