Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
1

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

27.03.2015, 20:05. Показов 4021. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <windows.h>
void main()
{
    setlocale(LC_ALL, "Russian");
    using namespace std;
    ifstream f1("F1.txt");//чтение
    ofstream f2("F2.txt");//запись
    if (!f1.fail())
    {
        string str;
        string numbers = "0123456789";
        int flag = 0;
        while (getline(f1,str))
        {
            for (int i = 0; str[i] != '\0';i++)
            {
                for (int a = 0; numbers[a] != '\0';a++)
                {
                    if (str[i]==numbers[a])
                    {
                        flag = 1;
                        break;
                    }
                }
                if (flag == 1)
                {
                    break;
                }
            }
            if (flag == 0)
            {
                cout << str << endl;
                f2.write((char*) &str,sizeof(str));
                f2.write("\n", 1);
            }
            flag = 0;
        }
        f1.close();
        f2.close();
        ifstream f("F2.txt");
        string rrrrr;
        f.read((char *)& rrrrr, sizeof(rrrrr));
        cout << rrrrr << endl;
        f.close();
    }
    else
    {
        cout << "Ошибка открытия\n" << endl;
    }
    system("pause");
}
при запуске exe винда сразу закрывает программу из аз строки f.read((char *)& rrrrr, sizeof(rrrrr));
Если ее убрать, то все работает, только в файл F2 попадает ерунда
F1
Код
ergwre wtr 3214
srgw tsgw t 3
Awr rfge gergerg egetge
getrg treg t gert
trgrt grthg rtg 345
34534 erger getr erth
retgtr eth trret rt
Adsrgf ergergertgrtgtg
eetrgertherth354 45
Awrger h4e5yh45h rth trh
werferf erg etg rthrthrthgr
rtherthertherth 45y rt
hrthrt ertherthertherthwrt
Awrgerg 4tg4th6thrth4t
ergegerg Aergetgr e4tgrtg
ergergehrerth ertherth45y
trthrtherthethethertherth
12312rw erferge regthrth
F2
Код
?3°¤rfge gerger       
?3°¤rfge gerger       
?3°¤rfge gerger       
?3°¤rfge gerger       
?3°¤rfge gerger       
?3°¤rfge gerger       
?3°¤rfge gerger    
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2015, 20:05
Ответы с готовыми решениями:

Скопировать из файла в файл все строки, которые не содержат цифры. Подсчитать количество строк по условию
Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры. Подсчитать количество...

1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву 2. Определить номер слова в котором больше всего г
1. Скопировать из файла F1 в файл F2 строки, которые не содержат слова, начинающиеся на одну букву...

Скопировать из файла F1 в файл F2 строки, которые начинаются с буквы A
я не особо эту тему понимаю, помогите кто может.

Дан текстовый файл. Выведите все строки, которые содержат хотя бы один пробел
Дан текстовый файл. Выведите все строки, которые содержат хотя бы один пробел. Формат входных...

7
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
27.03.2015, 22:43 2
Не нужно string бинарными методами писать/читать.
0
6 / 6 / 5
Регистрация: 14.07.2014
Сообщений: 24
27.03.2015, 22:44 3
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
33
34
35
36
37
38
39
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
void main()
{
   setlocale(0,"");
   char num[]="0123456789";
    int n = 100;
    char **line = new char*[n];
    for(int i = 0; i< n ; i++)
    line[i] = new char[300];
    ifstream ifs("F1.txt");
    if (!ifs.is_open()) // если файл не открыт
        cout << "Файл не может быть открыт!\n"; // сообщить об этом
    else
    {
    for(int i = 0; i<n; i++)
        ifs.getline(line[i], 300);
    }
    cout<< "Все строки:"<<endl;
    for(int i = 0; i<n; i++)
        if(strlen(line[i]) >= 1)
        cout << line[i] << endl;
    ofstream f("F2.txt");
    cout<< "Cтроки в файл F2:"<<endl;
    for(int i = 0; i<n; i++)
        if(strlen(line[i]) >= 1)
            for(int q=0;q<300;q++)
                for(int z=0;z<10;z++)
                    if(line[i][q]==num[z])
                    {
                        cout << line[i] << endl;
                        f << line[i] << endl;
                        i++;
                    }
    system("pause");
}
0
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
27.03.2015, 22:44  [ТС] 4
lss, так а как писать читать обычными методами?
0
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
27.03.2015, 22:46  [ТС] 5
Beretnash, по Вашему проблема в типе string?
0
6 / 6 / 5
Регистрация: 14.07.2014
Сообщений: 24
27.03.2015, 22:49 6
судя по всему
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
27.03.2015, 22:54 7
Лучший ответ Сообщение было отмечено SanychBY как решение

Решение

Цитата Сообщение от SanychBY Посмотреть сообщение
for (int i = 0; str[i] != '\0';i++)
В string если и есть терминальный ноль, то уже за пределами строки.
C++
1
2
for (int i = 0; i < str.size(); i++)
{
Добавлено через 3 минуты
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
#include <windows.h>
void main()
{
    setlocale(LC_ALL, "Russian");
    using namespace std;
    ifstream f1("F1.txt");//чтение
    ofstream f2("F2.txt");//запись
    if (!f1.fail())
    {
        string str;
        string numbers = "0123456789";
        int flag = 0;
        while (getline(f1,str))
        {
            for (int i = 0; i < str.size(); i++)
            {
                for (int a = 0; a < numbers.size(); a++)
                {
                    if (str[i]==numbers[a])
                    {
                        flag = 1;
                        break;
                    }
                }
                if (flag == 1)
                {
                    break;
                }
            }
            if (flag == 0)
            {
                cout << str << endl;
                f2 << str << endl;
            }
            flag = 0;
        }
        f1.close();
        f2.close();
        cout << endl << endl;
        ifstream f("F2.txt");
        string rrrrr;
        while (getline(f, rrrrr))
            cout << rrrrr << endl;
        f.close();
    }
    else
    {
        cout << "Ошибка открытия\n" << endl;
    }
    system("pause");
}
1
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
28.03.2015, 08:56  [ТС] 8
lss,
0
28.03.2015, 08:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2015, 08:56
Помогаю со студенческими работами здесь

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

Скопировать из файла F1 в файл F2 все строки, которые не содержат заданного слова
Ребята помогите пожалуйста решить задачку. 1) Скопировать из файла F1 в файл F2 все строки,...

Файл: Скопировать в файл F2 только те строки из F1, которые не содержат цифр.
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию. Скопировать в...

Текстовый файл. В новый файл поместить те строки файла, которые содержат заданное слово
Дан текстовый файл и некоторое слово. В новый файл поместить те строки файла, которые содержат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru