Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
1

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

26.12.2013, 23:57. Показов 2629. Ответов 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");
  //  }
 
    
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2013, 23:57
Ответы с готовыми решениями:

Работа с бинарными файлами, чтение и запись строк в бинарный файл
Доброго времени суток. Вот наконец-то доделал курсовую по builder c++. Проблема в том , что у меня...

Строки, чтение из файла и запись в файл
Здравствуйте. Подскажите пожалуйста, как переделать программу, чтоб реализовать чтение информации...

Работа с Файлами, запись в файл и вывод на экран из файла
Есть простая программа.. Как сделать, чтобы программа записывала текст введенный в консоли в файл....

Работа с файлами, запись в файл текстовой строки. Ассемблер, tasm
Исправить ошибки, чтобы в созданном файле записывалась текстовая строка .model small .data fname...

8
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 00:01 2
У меня вопрос касаемо этой темы.Если я записываю в файл русское слово (словосочетание,предложение и т.д.) в редакторе появляются иероглифы,как исправить этот момент? И при исправлении будет ли считывать верно русскую пропись?
0
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, приведение в стиле С или приведение в стиле функции
0
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 13:47 4
нам по ходу не помогут...
0
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305
27.12.2013, 14:41 5
Цитата Сообщение от web-magician Посмотреть сообщение
У меня вопрос касаемо этой темы.Если я записываю в файл русское слово (словосочетание,предложение и т.д.) в редакторе появляются иероглифы,как исправить этот момент? И при исправлении будет ли считывать верно русскую пропись?
Кодировку файла измени. Допустим в ANSI

Добавлено через 2 минуты
Rinosky, 54 строка.
Правильнее будет
C++
1
2
3
 
                gets(stroka);
                bool result = fputs(stroka, file); // и записываем ее в файл
0
5480 / 4875 / 831
Регистрация: 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.
0
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 19:12 7
с консоли ввожу Русское слово,а записывается в файл иероглифами...и прочитать с файла соответственно не получится...А кодировку меня не хочется ибо все работают на привычной win 1251

Добавлено через 2 минуты
setlocale (LC_ALL,"Rus"); или так...
0
5480 / 4875 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.12.2013, 20:01 8
Цитата Сообщение от web-magician Посмотреть сообщение
setlocale (LC_ALL,"Rus");
Это, обычно работает, только для русского вывода на консоль. Вариант для русского ввода с консоли я показал. Или что-то не поняли?
0
-6 / 11 / 1
Регистрация: 11.02.2011
Сообщений: 227
27.12.2013, 20:47 9
теперь вроде как понял...Только в visual studio 2012 работало
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2013, 20:47

Чтение из файла, запись в файл и работа с TList несколькими потоками
Есть задача, основная часть работы которой сводится к алгоритму: 1. Прочитать из текстового...

Чтение N-ной строки из одного файла и её запись в другой файл
Добрый день/вечер Столкнулся с такой проблемой: Требуется прочитать определенную строку в...

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru