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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Rinosky
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
#1

Работа с файлами, запись строки в файл и чтение из файла - C++

26.12.2013, 23:57. Просмотров 783. Ответов 8
Метки нет (Все метки)

Короче у меня задание типа записать строку в old.txt, потом считать это, найти самое маленькое слово и удалить его, после чего записать переобразованную строку в new.txt (до чего я даже не дошел) . После добавления поиска короткого слова, программа перестала записывать в файл строку.

То что заремировал, это поиск короткого слова.

Вообщем нужна помощь, сдавать прогу завтра(

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
#include <iostream>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
 
int main()
 
{   
    setlocale(LC_ALL, "Russian");
    int n=0,start=0;
    char stroka[255];
    char * omg = "C:\\old.txt"; // путь к файлу для записи
    FILE * file = fopen(omg, "w");
    if (file) // если есть доступ к файлу
    {   
        cout<<"Введите строку"<<endl;
        gets(stroka);
        bool result = fputs(stroka, file); // и записываем ее в файл
        if (!result) // если запись произошла успешно
            cout << "Строка в файл успешно записана!" << endl;
        //fgets(stroka,255,file);
            //q=strlen(stroka);
            //int i=0;
            //   int shortest=strlen(stroka); //для переменная длинна
             //  while(n<=q)
            //   {
             //       if((n!=q) && (stroka[n]!=' ')) //если символ не пробел и не конец строки
             //       {
            //            i++;    //то увеличиваем длину
            //        }
             //       else    //пробел
              //          {
               //         if((i<shortest) || ((i<shortest) && (n==q))) //если текущая длина слова меньше переменной, то записать в переменную длину
               //             {
                  //          shortest=i;
                 //           start=n-i; //запись первой буквы короткого слова
                  //          }
                 //       i=0;
                  //  }
            //   }
           //     n++;
            //    cout<<endl<<"The shortest word is - "; //вывод
           //     for(int i=start;i<(shortest+start);i++)
           //     {
           //         cout<<stroka[i];
               }
        
        system("PAUSE");
  //  }
 
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 23:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами, запись строки в файл и чтение из файла (C++):

Чтение текста из файла, удаление каждой второй строки (\n), запись в файл - C++
Дана строка у текстовом файле input.txt: Teachers TV's resources Have generated views Teachers TV content is now available On TES...

Работа с файлами, запись, обработка и чтение - C++
доброго времени суток, мне нужно: Создать текстовый файл, содержащий целые значения, следующего формата: 15 13 21 42 37 50 9 ...

Работа с файлами (запись/чтение данных из бд) - C++
Здравствуйте. Есть код(рабочий) #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;time.h&gt; #include &lt;string.h&gt; #include...

Работа с файлами. Запись и чтение строк - C++
Добавляю строку в файл &quot;text.txt&quot; а потом пытаюсь получить количество строк в этом файле.. Проблема заключается в том что добавляю...

Работа с файлами. Чтение из файла.Поиск. - C++
Нужно создать программу, которая считывает слова с одного файла (словарь) и находит эти слова в другом файле (текст) и выводит на экран эти...

Чтение из файла и запись в файл - C++
Создайте текстовый файл целых чисел (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 2 файла: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 00:01 #2
У меня вопрос касаемо этой темы.Если я записываю в файл русское слово (словосочетание,предложение и т.д.) в редакторе появляются иероглифы,как исправить этот момент? И при исправлении будет ли считывать верно русскую пропись?
Rinosky
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
27.12.2013, 00:26  [ТС] #3
Вообщем немного упростил себе задание, просто ввожу строку, нахожу самое короткое слово и записываю в файл old.txt !

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
56
57
58
59
60
61
62
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
 
int main()
 
{   
    setlocale(LC_ALL, "Russian");
    int shortest;
    int n=0,start=0,q;
    char stroka[255];
 
    printf("Input sring\n");
                char h;
                cin>>h;
                strset(stroka,' ');
                gets(stroka);
                q=strlen(stroka);
                q++;
                for (int i=q;i>0;i--)
                stroka[i]=stroka[i-1];
                stroka[0]=h;
int i=0;
               shortest=strlen(stroka); //для переменная длинна
               while(n<=q)
                    {
                    if((n!=q) && (stroka[n]!=' ')) //если символ не пробел и не конец строки
                    {
                        i++;    //то увеличиваем длину
                    }
                    else    //пробел
                        {
                        if((i<shortest) || ((i<shortest) && (n==q))) //если текущая длина слова меньше переменной, то записать в переменную длину
                            {
                            shortest=i;
                            start=n-i; //запись первой буквы короткого слова
                            }
                        i=0;
                    }
                n++;
                }
                cout<<endl<<"The shortest word is - "; //вывод
                for(int i=start;i<(shortest+start);i++)
                {
                    cout<<stroka[i];
                }
                char * omg = "C:\\old.txt"; // путь к файлу для записи
                FILE * file = fopen(omg, "w");
                if (file) // если есть доступ к файлу
                {   
                gets(stroka[i]);
                bool result = fputs(stroka[i], file); // и записываем ее в файл
                if (!result) // если запись произошла успешно
                cout << "Строка в файл успешно записана!" << endl;
                }
              
 
return 0;
}
Но что с этим делать я не знаю(

1>c:\users\kostya\documents\visual studio 2008\projects\lab7\lab7\laba7.cpp(54) : error C2664: gets: невозможно преобразовать параметр 1 из 'char' в 'char *'
1> Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\kostya\documents\visual studio 2008\projects\lab7\lab7\laba7.cpp(55) : error C2664: fputs: невозможно преобразовать параметр 1 из 'char' в 'const char *'
1> Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 13:47 #4
нам по ходу не помогут...
uhx
60 / 60 / 6
Регистрация: 11.07.2013
Сообщений: 304
27.12.2013, 14:41 #5
Цитата Сообщение от web-magician Посмотреть сообщение
У меня вопрос касаемо этой темы.Если я записываю в файл русское слово (словосочетание,предложение и т.д.) в редакторе появляются иероглифы,как исправить этот момент? И при исправлении будет ли считывать верно русскую пропись?
Кодировку файла измени. Допустим в ANSI

Добавлено через 2 минуты
Rinosky, 54 строка.
Правильнее будет
C++
1
2
3
 
                gets(stroka);
                bool result = fputs(stroka, file); // и записываем ее в файл
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.12.2013, 15:29 #6
Цитата Сообщение от web-magician Посмотреть сообщение
Если я записываю в файл русское слово (словосочетание,предложение и т.д.) в редакторе появляются иероглифы,как исправить этот момент?
Откуда берётся русское слово? Вводится с консоли? Тогда нужно сделать русский ввод в коде. Один из способов:
C++
1
2
3
4
5
6
#include <Windows.h>
...
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
В свойствах консоли выбрать шрифт: Lucida Console.
web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 19:12 #7
с консоли ввожу Русское слово,а записывается в файл иероглифами...и прочитать с файла соответственно не получится...А кодировку меня не хочется ибо все работают на привычной win 1251

Добавлено через 2 минуты
setlocale (LC_ALL,"Rus"); или так...
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.12.2013, 20:01 #8
Цитата Сообщение от web-magician Посмотреть сообщение
setlocale (LC_ALL,"Rus");
Это, обычно работает, только для русского вывода на консоль. Вариант для русского ввода с консоли я показал. Или что-то не поняли?
web-magician
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 20:47 #9
теперь вроде как понял...Только в visual studio 2012 работало
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 20:47
Привет! Вот еще темы с ответами:

Чтение из файла и запись в файл - C++
Доброго времени суток. Идея в чем: Пример входных данных из файла: 5 o 3 c 4 o 5 c 6 o 7

Запись в файл и чтение из файла - C++
Здравствуйте!!! Как правильно сделать в с++ запись в файл и чтение из файла?? Объясните пожалуйста с примерами??

Запись в файл и чтение из файла - C++
Всем привет. Кто может подсказать решение? Есть полученный заполненный массив. int A. Числа в нём от 0 до 17. Как его записать в файл...

Запись в файл, чтение из файла - C++
Каким образом можно реализовать чтение из файла только 1 строки,используя ifstream и fstream,если можно то темку про это из интернета,сам...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.12.2013, 20:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru