IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Работа с файлом, С
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


С помощью текстового редактора создать файл, содержащий текст, длина кото¬рого не пре-вышает 700 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT. Написать программу, которая:
- выводит исходный текст на экран дисплея;
- выводит текст на экран дисплея еще раз, заключая заданное слово в кавычки (заданное слово вводить с клавиатуры);

 
#include <fstream.h>
#include <iostream.h>
#include <conio.h>;
#include <string.h>;
#include "strlib.cpp";
//using namespace std;

void main()
{
// const int Max=1000;
char* s;
ifstream infile("Test.txt");
while (!infile.eof())
{
infile.getline(s, 80);
cout<<s<<endl; //ўлў®¤Ёв бва®ЄЁ
}

cout<<"\n‚ўҐ¤ЁвҐ б«®ў® Є®в®а®Ґ ­ 室Ёвмбп ў д ©«Ґ";
char *word;
cin>>word;

while (!infile.eof() )
{
infile.getline(s,80);
int i;
i=spos(word,s);
if (i!=0)
{
sinsert(" " " ",s,spos(word,s));
sinsert(" " " ",s,spos(word,s) + slength(word));

}
cout<<s<<endl;
}
cout<<"„«п ўл室 Єг¤л ­Ёвм вЄ­ЁвҐ";
cout<<endl;
getche();
}



помогите доделать в программе не выделяеться слово(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Хочешь - попробуй перевести с Паскаля (хотя я сомневаюсь, уж очень специфическая в Паскале работа со строками...) Задание - практически один к одному, нужно слово выделять не кавычками, а цветом.
чтение файла, выделение слов
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


Цитата(volvo @ 14.05.2006 22:35) *

Хочешь - попробуй перевести с Паскаля (хотя я сомневаюсь, уж очень специфическая в Паскале работа со строками...) Задание - практически один к одному, нужно слово выделять не кавычками, а цветом.
чтение файла, выделение слов


нет в паскале у меня тоже есть... но проблема возникает именно в функции sinsert ты не можешь помочь хотя бы сказать как выделить слово в кавычки в Си?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ничем помочь не могу - sinsert не является стандартной функцией C/C++, так что я понятия не имею, что именно там делается...

А вся твоя программа завязана на использовании этой самой sinsert
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 114
Пол: Мужской
Реальное имя: Ден

Репутация: -  0  +


Volvo вот здесь есть эта функция sinsert

Жаль сам не могу помочь решить задачу, так как плохо разбираюсь в этом.


Прикрепленные файлы
Прикрепленный файл  STRLIB_.txt ( 1.18 килобайт ) Кол-во скачиваний: 159


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ирин, у тебя в программе немного неправильно использовались указатели на строку (память под саму строку не выделялась)... Я подправил кое-что, сейчас программа работает (правда, частично: если в одной строке есть несколько введенных слов, то кавычками выделяется только первое из них). Смотри комментарии...

#include <fstream.h>
#include <iostream.h>
#include <conio.h>;
#include <string.h>;
#include "strlib.cpp";
// using namespace std;

int main() {

char s[71]; // Чтобы не заморачиваться с new

ifstream infile("Text700.txt");
while (!infile.eof()) {
infile.getline(s, 80);
cout << s << endl;
}

cout << "Введите слово: ";
char word[50]; // Аналогично, выделяем память статически
cin >> word;


infile.seekg(0, ios::beg); // !!! Ты дошла до конца файла, указатель надо сбросить на начало
infile.clear(); // Точно так же надо сбросить все флаги ошибок файла

while(!infile.eof()) {

infile.getline(s, 80);
if(spos(word,s) > 0) {
strcpy(s, sinsert("\"", s, spos(word, s))); // используется возвращаемое значение функции !!!
strcpy(s, sinsert("\"", s, spos(word,s) + slength(word)));
}
cout << s << endl;
}

cout << "Press any key" << endl;
getche();
return 0;
}
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 17.10.2017 18:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"