Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


Рекомендуемые сообщения

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

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Здравствуйте снова прошу помощи

тема "Строковый ввод-вывод"

 

1)  Скопировать из файла F1 в файл F2 все строки, которые содержат только одно слово.

2)  Найти самое длинное слово в  файле F2.

Ссылка на комментарий
Поделиться на другие сайты

konfetka12

#include<iostream>#include<sstream>#include<fstream>#include<string>using namespace std;int main(){int i; string s,sm,ins,outs;  cout<<"Name of the  input file: "; cin>>ins; ifstream ifs(ins);if(ifs.fail()){cerr<<"Error of opening of the input file "<<endl; cin.get(); return 1;}cout<<"Name of the output file: "; cin>>outs; ofstream ofs(outs); cout<<endl;while(getline(ifs,s)){istringstream ist(s); for(i=0;ist>>sm;i++); if(i==1)ofs<<s<<'\n';}ifs.close(); ofs.close(); ifstream kfs(outs);sm.clear(); while(kfs>>s)if(s.length()>sm.length())sm=s; kfs.close(); cout<<sm<<endl; cout<<"\nPress Enter to exit\n"; cin.get(); cin.get();}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

 

konfetka12

#include<iostream>#include<sstream>#include<fstream>#include<string>using namespace std;int main(){int i; string s,sm,ins,outs;  cout<<"Name of the  input file: "; cin>>ins; ifstream ifs(ins);if(ifs.fail()){cerr<<"Error of opening of the input file "<<endl; cin.get(); return 1;}cout<<"Name of the output file: "; cin>>outs; ofstream ofs(outs); cout<<endl;while(getline(ifs,s)){istringstream ist(s); for(i=0;ist>>sm;i++); if(i==1)ofs<<s<<'\n';}ifs.close(); ofs.close(); ifstream kfs(outs);sm.clear(); while(kfs>>s)if(s.length()>sm.length())sm=s; kfs.close(); cout<<sm<<endl; cout<<"\nPress Enter to exit\n"; cin.get(); cin.get();}

не понимаю что сделать выводит ошибки при компиляции

1.png

post-118460-0-58095800-1384627892_thumb.

Ссылка на комментарий
Поделиться на другие сайты

не понимаю что сделать выводит ошибки при компиляции

Так у тебя на скрине в программе в начале совсем не те строки, что у меня. Зачем-то подключен заголовочный файл stdio.h от C, тут ненужный, а iostream, sstream, fstream, string не подключены. Скопируй программу целиком, а не ее часть.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

 

не понимаю что сделать выводит ошибки при компиляции

Так у тебя на скрине в программе в начале совсем не те строки, что у меня. Зачем-то подключен заголовочный файл stdio.h от C, тут ненужный, а iostream, sstream, fstream, string не подключены. Скопируй программу целиком, а не ее часть.

все равно не распознает

1.png

post-118460-0-47928300-1384669594_thumb.

Ссылка на комментарий
Поделиться на другие сайты

konfetka12

Иногда такое происходит из-за разных сред разработки. У меня нечто подобное было, когда RAD Studio и VisualStudio не могли договориться между собой. (Переносился только код, а не сам проект.) У них разные библиотеки. Чтобы все работало, в RAD надо было обязательно дописывать одну строчку, но какую не помню.

Ссылка на комментарий
Поделиться на другие сайты

Тролль

А что такое ifs? Откуда оно берется?

if(ifs.fail())

Давно не программировала на C++  и не следила за его развитием. Что делает функция fail(), к какой библиотеке она относится? Я так и не смогла освоить работу с файлами в C++.

Ссылка на комментарий
Поделиться на другие сайты

Иазяв

ifs у меня имя в программе для входного файла (потока),  ifstream ifs(ins); открывает  файл с именем из строки ins как входной поток с именем ifs.

А ifs.fail() дает как результат булевское значение true или false смотря по тому, удалось открыть файл или нет.

 

konfetka12

Судя по скрину, у тебя C++ Builder, к тому же, похоже, какая то древняя версия... Насколько помнится, там была недоработка, классы fstream не работали со строками класса string.

Замени

int i; string s,sm,ins,outs;

на

int i; string s,sm; char ins[ 255],outs[ 255];

И выкинь ненужную чертовщину, которую ты все же оставила зачем-то в начале программы:

#include <clx.h>

#pragma hdrstop

А еще лучше - поставь нормальную простую среду программирования на C++, например,

http://orwelldevcpp.blogspot.de/2013/11/dev-c-553-released.html

Там есть и удобная портабельная версия размером 17МВ, работающая после распаковки без установки.

К сожалению, разные реализации C++ имеют отличающиеся библиотеки, да и сам C++ все время меняется - старое выкидывается, новое добавляется...

Кстати, интересно, по какой специальности ты учишься?

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

да мы работаем в C++ Builder 6
самое грустное что я изначально не хотела разбираться в программировании и теперь жалею

 

а сами файлы я так поняла должны быть уже созданы и один из них заполнен
просто теперь программа не находит сам файл, ни с расширением ни без него

и ошибки при этом никакой не выводит просто запрашивает имя и все закрывается

 

Ссылка на комментарий
Поделиться на другие сайты

Тролль

Спасибо огромное! Я впервые столкнулась с функцией fail. Мы всегда проводили проверку с помощью is_open.

Почему-то в msdn нет упоминания этой функции, а в гугле выдается результат всего кроме описания функции. (Наверно, неправильно задаю вопрос.) Не могли бы вы дать ссылку на почитать о функции?

А строчку с ifstream ifs(ins); я пропустила, поэтому и спросила, откуда взялась переменная. Извиняюсь за невнимательность.

Ссылка на комментарий
Поделиться на другие сайты

konfetka12

Если запрашивает имя и закрывается, вероятно, что просто файл не там, где она ищет, а ищет она там, где находится скомпилированный exe-файл.

Для простоты можно поместить файл в известное место и указывать при запросе от программы полный путь к нему. Например, поместить файл a.txt в корневую папку диска C и вводить при запросе программой имен файлов C:\a.txt и C:\b.txt

А чтобы убедиться, что файл просто не найден, поставь перед return 1; еще один раз cin.get(); - тогда будет выдаваться сообщение.

Да, "сами файлы я так поняла должны быть уже созданы и один из них заполнен" - должен быть создан только входной файл, выходной программа создаст самостоятельно, она только запрашивает имя для него. Но если он уже и существует, ничего страшного, он просто будет переписан.

"да мы работаем в C++ Builder 6"

Интересно, почему вы все же работаете в среде более чем десятилетней давности разработки. Последний номер версии C++ Builder, насколько я помню, 19...

 

Иазяв
В C++ одно и то же обычно можно сделать десятком или больше способов, а разных функций как рыбы в океане, так что ничего удивительно, что вы прошли мимо fail. Ссылка -

http://www.cplusplus.com/reference/fstream/ifstream/

ее там можно найти в разделе функций, унаследованных от класса ios

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

я создавала файл и в той же папке где сохранена программа
все равно не находит 
и в корневую папку тоже пробовала с охранять ни в какую

>А чтобы убедиться, что файл просто не найден, поставь перед return 1; еще один раз cin.get(); - тогда будет выдаваться сообщение.
прописала, теперь не закрывает окно и пишет ошибку

Ссылка на комментарий
Поделиться на другие сайты

"не закрывает окно и пишет ошибку" - это сообщение программы "Error of opening of the input file" или какую-то свою? Окно после нажатия Enter или на кнопку закрытия окна в верхнем правом углу закрывается? Какая у тебя операционная система? 

Когда ты создаешь файл в корневой папке, при запросе программой имени файла ты прописываешь путь к этому файлу?

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Значит, пока что программа работает правильно, просто не находит файла на положенном ему месте. Что за имя *.txt? Создай текстовый файл, например, с содержанием

 

 aaa  
 bbb bbb
ccc
 dddd dddd ddd

и именем a.txt , помести его в корневую папку диска С и напиши в ответ на запрос программы C:\a.txt

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Не вижу смысла. Никакой разницы, программно или в редакторе. Ясно, что программа у тебя почему-то не находит файл, то ли имя неправильно, то ли он не там, где она его ищет. Я за это время скачал C++ Builder, правда несколько более поздней версии, но раз у тебя программа скомпилировалась, это не должно влиять.  У меня и в C++ Builder при правильном указании имени файла и пути к нему программа работает, находит файл и выдает результат. Попробуй закинуть в корневую папку диска файлы a.txt и просто а с одинаковым содержанием, как у меня выше, и введи пути C:\a.txt и C:\b.txt

P.S. Еще могу предложить запустить C++ Builder с правами администратора - на тот случай, если у тебя на диске стоит защита.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

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


а можете еще посмотреть вот эту программу:

тема строки

задание: Преобразовать строку так, чтобы все слова в ней стали идентификаторами, слова состоящие только из цифр - удалить.

 

мне нужно чтоб слова которые состоят из цифр и букв как-то обрабатывались, либо заменялись на символ либо из них удалялись цифры

 

#pragma argsused

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <stdio.h>
 
void ClearString(char string[255])
{
int i;
for(i=0;i<255;i++)
        {       string='\0'; }}
int main(int argc, char *argv[])
{
char str[255],s[255]="",t[255]="",c;
bool r;
int i=0,j=0;
printf("Enter text>");
gets(s);
strcpy(str,"");
do
        {       r=false;
do
        {       c=s;i++;
                if(c>'9'){r=true;       }
                if(c==' '||c=='.'||c=='\0')
        {
                if(t[0]>'9'){if®
        {
                strcat(str,t);       // соед строки
                strcat(str," ");
                }}
t[j]='\0';
j=0;
ClearString(t);
break;
}
else {t[j]=c;j++;
}}
while(1);
}
while(c!='.'&&c!='\0');
printf("identifiers:\n");
puts(str);
system("PAUSE");
return 0;}
Ссылка на комментарий
Поделиться на другие сайты

konfetka12

"мне нужно чтоб слова которые состоят из цифр и букв как-то обрабатывались, либо заменялись на символ либо из них удалялись цифры"

Хорошо, будем удалять цифры. Напишу на С, C++ для такой задачи не дает преимуществ, но компилятор C++ этот код тоже обработает без проблем. 

#include<stdio.h>#include<ctype.h>void dc(char *s){char *p,*q; for(p=q=s;*p;*p++=*q++)while(isdigit(*q))q++;}int main(){char s[1000]; gets(s); dc(s); puts(s); getchar(); return 0;}
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Всем привет. Можете помочь еще с двумя задачами со строками?)

1) Даны натуральное число n, символы S1, ...,Sn. Группы символов, разделенные пробелами (одним или не­сколькими) и не содержащие пробелов внутри себя, будем называть словами.Найти какое-нибудь слово, начинающееся с буквы а.

2)Дан текст. Для каждого из слов указать сколько раз оно встречается среди все слов образованными символами данного текста.

Ссылка на комментарий
Поделиться на другие сайты

@Тролль,

Огромное просто безграничное спасибо что помогаете!!!

но у меня осталась последняя программа которую нужно сделать, если возможно помогите пожалуйста 

Тема: "Информационные динамические структуры"
 
Порядок выполнения работы
1. Написать функцию для создания списка. Функция может создавать пустой список, а затем добавлять в него элементы.
2. Написать функцию для печати списка. Функция должна предусматривать вывод сообщения, если список пустой.
3. Написать функции для удаления и добавления элементов списка в соответствии со своим вариантом.
4. Выполнить изменения в списке и печать списка после каждого изменения.
5. Написать функцию для записи списка в файл.
6. Написать функцию для уничтожения списка.
7. Записать список в файл, уничтожить его и выполнить печать
(при печати должно быть выдано сообщение "Список пустой").
8. Написать функцию для восстановления списка из файла.
9. Восстановить список и распечатать его.
10. Уничтожить список.
 
Задание:
Записи в линейном списке содержат ключевое поле типа int. Сформировать двунаправленный список. 
Удалить из него К элементов перед элементом с заданным номером, добавить К элементов в конец списка.
Ссылка на комментарий
Поделиться на другие сайты

Hidan

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

 

Даны натуральное число n, символы S1, ...,Sn. Группы символов, разделенные пробелами (одним или не­сколькими) и не содержащие пробелов внутри себя, будем называть словами.Найти какое-нибудь слово, начинающееся с буквы а.
#include<string.h>#include<stdio.h>int main(){char s[1000],*r=" ,\t\n",*t,b=0; gets(s); t=strtok(s,r);while(t){if(t[0]=='a'){b=1; break;} t=strtok(NULL,r);}puts(b?t:"None :("); getchar(); return 0;}
Дан текст. Для каждого из слов указать сколько раз оно встречается среди все слов образованными символами данного текста.
#include<string.h>#include<stdio.h>int main(){char s[1000],*p,*q,t[100],c=' '; int i,k,m;  s[0]=c; p=s+1; gets(p); p[strlen(p)+1]=0; p[strlen(p)]=c;for(i=1;s[i];i++){   if(s[i-1]==c&&s[i]!=c)k=i-1;   if(s[i-1]!=c&&s[i]==c){      strncpy(t,s+k,i-k+1);  t[i-k+1]=0;      for(m=0;q=strstr(s,t);m++)for(k=0;k<strlen(t);k++)q[k]=c;      printf("%3d ",m); puts(t);}}puts("Press Enter for exit"); getchar(); return 0;}

konfetka12

Тоже непонятно, что делать. В "Задании" одно, а в "Порядке выполнения работы" совсем другое. Надеюсь, что выполнять надо "Задание", а не "Порядок" - по крайней мере, в задании на восемь пунктов меньше :)

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...