Форум программистов, компьютерный форум CyberForum.ru

как правильно дописать программу - C++

Восстановить пароль Регистрация
 
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
06.01.2010, 18:00     как правильно дописать программу #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ifstream f;
int c=0;
int x=0;
int y=0;
string slova[100];
f.open("C:\\text.txt");
while(!f.fail()){
f>>slova[x];
++c;
cout<<slova[x]<<endl;
++x;
}
y=c;
cout<<"Введите номер слова, который вы хотите удалить: ";
int k=0;
cin>>k;
int i=0;
for(i=k+1;i<=c;i++);
{
slova[k]=slova[i+1];
c=c-1;
}
for(int i=0;i<=y ;i++)cout<<slova[i]<<endl;
программа читает текст из фалйа в котором написано Hello wordl how are u, потом выводит каждое слово с новой строки,после чего предлагает ввести номер строки чтобы удалить ее,ввожу 2 удаляет,все хорошо без ошибок...просто какой то не красивый код,в нем очень много переменных,написано не красиво,прошу улучшить ее
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
06.01.2010, 18:26     как правильно дописать программу #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
 
int main()
{
    vector<string> str_list;
    string str;
    ifstream read("text");
    while(!read.eof())
{
    getline(read, str, ' ');
    cout << str <<endl;
    str_list.push_back(str);
}
    cout << "Какую строку удалить?";
    int choice = 0;
    cin >> choice;
    //if(choice>(int)str_list.size())
     //cout << "Такой строки нет";
    str_list.erase(str_list.begin() + (choice-1));
    vector<string>::size_type sz=str_list.size();
    for(unsigned int i = 0; i<sz; i++)
        cout << str_list[i] <<endl;
    return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
06.01.2010, 19:13  [ТС]     как правильно дописать программу #3
breeve, без векторов и всякого лишнего нельзя обойтись?

Добавлено через 32 секунды
отмечу что программу я пишу чтобы науится массивам)то есть надо с массивами и без лишнего
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
06.01.2010, 20:22     как правильно дописать программу #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    ifstream f("C:\\text.txt");
    string slova[100];
 
    int c = 0;
    while(!f.eof())
    {
        f >> slova[c];
        cout << slova[c] << endl;
        ++c;
    }
 
    cout <<  "Введите номер слова, который вы хотите удалить: ";
    int k = 0;
    cin >> k;
 
    for(int i = k-1; i < c-1; ++i)
        slova[i] = slova[i+1];
 
    --c;
    for(int i = 0; i < c ; ++i)
          cout << slova[i] << endl;
 
    return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
06.01.2010, 21:21  [ТС]     как правильно дописать программу #5
Цитата Сообщение от rangerx Посмотреть сообщение
slova[i] = slova[i+1];
разве тут не
C++
1
slova[k] = slova[i+1];
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
06.01.2010, 23:19     как правильно дописать программу #6
Так тебе нужно удалить строку, или очистить? Если второе, то всё гараздо проще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    int c = 0;
    ifstream f("file.txt");
    string slova[100];
 
    while(!f.eof())
    {
        f >> slova[c];
        cout << slova[c] << endl;
        ++c;
    }
 
    cout << "Введите номер слова, который вы хотите удалить: ";
    int k = 0;
    cin >> k;
    slova[k].clear(); // slova[k] = "";
 
    for(int i = 0; i < c ;++i) cout << slova[i] << endl;
    return 0;
}
Yandex
Объявления
06.01.2010, 23:19     как правильно дописать программу
Ответ Создать тему
Опции темы

Текущее время: 02:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru