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

Проблемы при создании *.txt файла консолем

12.06.2009, 23:15. Просмотров 4011. Ответов 45
Метки нет (Все метки)

у меня код
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "locale.h"
#include "windows.h"
using namespace std;
 
void main(){
setlocale( LC_ALL,"Russian.1572" );
SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 
        char str[128];
        char a[512];
 
char fname[128];
 
cout << "Введите адрес и имя файла: ";
cin >> fname;
 
 
        cout << "Ввести текст\n";
        cin >> a;
        ifstream in;
       
 
 
        if (!in.fail()){//Если открыли
 
 
            
            
            
            
        ofstream out(fname);
               
                while(!in.eof()){
                        out << a;
   in >> str;
 
                }
       
        }
}
этот код должен создать txt файл и ввести туда текст который сам я напишу.Но когда я ввожу скажем "Привет Мир", в txt файле только первое слово записывается...то есть после пробела ничего не записывает....буду благодарен тому кто исправит это
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2009, 23:15
Ответы с готовыми решениями:

Лишний пробел при создании txt-файла
Вот код создания файла: if (isset($_GET)) { //Создание schedule.mss for ($i=1;...

Проблемы при создании MDE файла
Базы с данными преобразованы в файл MDE с легкостью, а вот исполнительный файл не идет. Какие могут...

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

Проблемы при создании матрицы
Всем привет! Есть две матрицы 9х1, нужно создать новую, так же 9х1, в которой будут следующие...

45
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
12.06.2009, 23:36 2
C++
1
2
 ifstream in;
if (!in.fail()){//Если открыли
А вот этим ты что пытаешься сделать?
0
144 / 144 / 32
Регистрация: 26.10.2008
Сообщений: 782
13.06.2009, 01:08 3
В 24 строчке cin >> a;
cin записывает символы в строку до первого пробела.
Напишите
C++
1
cin.getline (a, 512);
0
Заказ софта
342 / 187 / 21
Регистрация: 26.05.2009
Сообщений: 863
13.06.2009, 01:11 4
Вот мой скромный вариант готовой программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main(int argc, char * argv [])
{
    char line[1024];
 
    printf("Write string: ");
    fgets(line, sizeof(line), stdin);
 
    FILE *fp = fopen("text.txt", "wt");
 
    if(fp == 0) {
        fprintf(stderr, "Error! File not open!\n");
        return -1;
    }
 
    fprintf(fp, line);
    fclose(fp);
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
13.06.2009, 10:11 5
Цитата Сообщение от FunDuck Посмотреть сообщение
C++
1
2
 ifstream in;
if (!in.fail()){//Если открыли
А вот этим ты что пытаешься сделать?
ну это больше для пользователя...я там недописал else...
если не открылась прога там написать скажем "нельзя открыть файл" типо..

Добавлено через 4 минуты 17 секунд
Цитата Сообщение от qwert Посмотреть сообщение
В 24 строчке cin >> a;
cin записывает символы в строку до первого пробела.
Напишите
C++
1
cin.getline (a, 512);
не работает...после того как я ввожу адресс консоль сразу закрывается...
вот!сейчас сработало!я снизу это добавил сработало спасибо!Но!я написал "ddd как дела"...в тексте ddd небыло...почему7
или же:написал "Hello world", выводиться только world...
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
13.06.2009, 10:50 6
Цитата Сообщение от alex2693 Посмотреть сообщение
ну это больше для пользователя...я там недописал else...
если не открылась прога там написать скажем "нельзя открыть файл" типо..
Может я чего то не понял...... ifstream - класс для работы с файлами.... при чем тут прога?
Затем этот цикл....
C++
1
while(!in.eof()){//Цикл будет выполнятся пока не закончится файл.... (который даже не открывали)
Вобщем переделал немного твою....:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
#include <locale.h>
#include <windows.h>
using namespace std;
 
int main(){
    setlocale( LC_ALL,"Russian.1572" );
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char fname[128], str[512];
    cout << "Введите адрес и имя файла: ";
    cin >> fname;
    cout << "Ввести текст\n";
    cin.getline(str, 512);
    ofstream out(fname);
    if (!out.fail()){//Если открыли
        out << str;
    }
    return 0;
}
0
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
13.06.2009, 11:04 7
Цитата Сообщение от qwert Посмотреть сообщение
cin записывает символы в строку до первого пробела.
а твой вариант вроде работает только скажем я пишу "привет мир я алексей"
выводит в txt " мир я алескей", то есть первое слово исчезает

Добавлено через 4 минуты 30 секунд
Цитата Сообщение от FunDuck Посмотреть сообщение
Может я чего то не понял...... ifstream - класс для работы с файлами.... при чем тут прога?
Затем этот цикл....
C++
1
while(!in.eof()){//Цикл будет выполнятся пока не закончится файл.... (который даже не открывали)
Вобщем переделал немного твою....:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
#include <locale.h>
#include <windows.h>
using namespace std;
 
int main(){
    setlocale( LC_ALL,"Russian.1572" );
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char fname[128], str[512];
    cout << "Введите адрес и имя файла: ";
    cin >> fname;
    cout << "Ввести текст\n";
    cin.getline(str, 512);
    ofstream out(fname);
    if (!out.fail()){//Если открыли
        out << str;
    }
    return 0;
}
это все не я написал я на форме нашел прогу которая из файла удаляет энтеры и выводит в новвый файл...я бы сам не смогу столько написать))))я только только учусь)))

Добавлено через 2 минуты 44 секунды
ввожу твой код делаю дэбаг открывается консоль пишу адрес и имя и сразу закрывается....

Добавлено через 1 минуту 26 секунд
ах даа...ты там на 15 строчке не добавил cin >> str;

Добавлено через 1 минуту 13 секунд
тоже самое что и тогда....я пишу приет как дела, а в тексте только как дела!!!!
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
13.06.2009, 11:47 8
Странно... у меня все работает....
Цитата Сообщение от alex2693 Посмотреть сообщение
Добавлено через 1 минуту 26 секунд
ах даа...ты там на 15 строчке не добавил cin >> str;
А это зачем?? и куда именно.... покажи весь код что получился.....
1
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
13.06.2009, 12:00 9
Для записи в файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// writing on a text file
#include <iostream>
#include <fstream>
using namespace std;
 
int main () {
  ofstream myfile ("example.txt");
  if (myfile.is_open())
  {
    myfile << "This is a line.\n";
    myfile << "This is another line.\n";
    myfile.close();
  }
  else cout << "Unable to open file";
  return 0;
}
Цитата Сообщение от file example.txt
This is a line.
This is another line.
Чтение c файла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main () {
  string line;
  ifstream myfile ("example.txt");
  if (myfile.is_open())
  {
    while (! myfile.eof() )
    {
      getline (myfile,line);
      cout << line << endl;
    }
    myfile.close();
  }
 
  else cout << "Unable to open file"; 
 
  return 0;
}
Цитата Сообщение от Console
This is a line.
This is another line.
Input/Output with files
1
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
13.06.2009, 14:59 10
Цитата Сообщение от FunDuck Посмотреть сообщение
Странно... у меня все работает....

А это зачем?? и куда именно.... покажи весь код что получился.....
сразу после твоего cin-а....этот оператор только как бы свойство для cin>>a-а......

Добавлено через 2 минуты 20 секунд
Цитата Сообщение от ISergey Посмотреть сообщение
Для записи в файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// writing on a text file
#include <iostream>
#include <fstream>
using namespace std;
 
int main () {
  ofstream myfile ("example.txt");
  if (myfile.is_open())
  {
    myfile << "This is a line.\n";
    myfile << "This is another line.\n";
    myfile.close();
  }
  else cout << "Unable to open file";
  return 0;
}

Чтение c файла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main () {
  string line;
  ifstream myfile ("example.txt");
  if (myfile.is_open())
  {
    while (! myfile.eof() )
    {
      getline (myfile,line);
      cout << line << endl;
    }
    myfile.close();
  }
 
  else cout << "Unable to open file"; 
 
  return 0;
}

Input/Output with files
а это все один и тот же код?
0
144 / 144 / 32
Регистрация: 26.10.2008
Сообщений: 782
14.06.2009, 01:03 11
Цитата Сообщение от alex2693 Посмотреть сообщение
не работает...после того как я ввожу адресс консоль сразу закрывается...
вот!сейчас сработало!я снизу это добавил сработало спасибо!Но!я написал "ddd как дела"...в тексте ddd небыло...почему7
или же:написал "Hello world", выводиться только world...
Возможно, ты что-то вводишь с помощью cin, часть записывается куда-нибудь не туда.
0
144 / 144 / 32
Регистрация: 26.10.2008
Сообщений: 782
14.06.2009, 01:14 12
Цитата Сообщение от alex2693 Посмотреть сообщение
ну то есть ниче не изменилось..
В первом случае текст записывается, а во втором читается из файла.
0
Maniac
Эксперт С++
1445 / 947 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
14.06.2009, 02:03 13
Цитата Сообщение от alex2693 Посмотреть сообщение
а это все один и тот же код?
В смысле?
0
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
14.06.2009, 02:35 14
Цитата Сообщение от ISergey Посмотреть сообщение
В смысле?
ну то есть ниче не изменилось..
0
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
14.06.2009, 09:04 15
Цитата Сообщение от qwert Посмотреть сообщение
Возможно, ты что-то вводишь с помощью cin, часть записывается куда-нибудь не туда.
а как могу исправить это?
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
14.06.2009, 11:19 16
Цитата Сообщение от alex2693 Посмотреть сообщение
а как могу исправить это?
Покажи весь код который получился.
0
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
14.06.2009, 12:27 17
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "locale.h"
#include "windows.h"
using namespace std;

int main(){
//Объявления
char fname[128], str[512];
//ввод русс языка
setlocale( LC_ALL,"Russian.1572" );
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//адрес
cout << "Введите адрес и имя файла: ";
cin >> fname;
//текст
cout << "Ввести текст\n";
cin >> str;
cin.getline(str, 512);
ofstream out(fname);
//услов оператор
if (!out.fail()){//Если открыли
out << str;
}
return 0;
}

вот......
0
576 / 570 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
14.06.2009, 12:33 18
Код
cin >> str;
Вот этот cin все и портит.
1
0 / 0 / 0
Регистрация: 09.06.2009
Сообщений: 72
14.06.2009, 12:37 19
Цитата Сообщение от Gravity Посмотреть сообщение
Код
cin >> str;
Вот этот cin все и портит.
но без этого не дается возможность писать...сразу после того как я ввожу адресс окно закрывается..типо свое дело сделал....

Добавлено через 2 минуты 4 секунды
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "locale.h"
#include "windows.h"
using namespace std;

int main(){
//Объявления
char fname[128], str[512];
//ввод русс языка
setlocale( LC_ALL,"Russian.1572" );
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//адрес
cout << "Введите адрес и имя файла: ";
cin >> fname;
//текст
cout << "Ввести текст\n";

cin.getline(str, 512);
ofstream out(fname);
//услов оператор
if (!out.fail()){//Если открыли
out << str;
}
Sleep(50000);
return 0;
}


ты попробуй этой компиляцию сделать....
я написал вконце sleep чтобы окно не закрылсь...делаю кампиляцию ввожу адресс снизу пишет вводите текст и не дается возможность писать...
0
Эксперт С++
2328 / 1701 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.06.2009, 12:39 20
Для того чтобы приостановить выполнение программы (для того чтобы она сразу не закрылась) вместо строки:
Цитата Сообщение от alex2693 Посмотреть сообщение
C++
1
Sleep(50000);
Напиши:
C++
1
system("pause");
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2009, 12:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проблемы при создании отчета
Делаю пример из книги Радченко &quot;Практическое пособие разработчика 8.1&quot; Отчет РейтингУслуг Текст...

Проблемы при ручном создании компонента
Делаю свой компонент-кнопку. Просто как компонент создается на ура, НО как только пытаюсь изменить...

Проблемы при создании базы данных mysql
Создал базу данных пишет ошибку - Ошибка при указании соединения для controluser в конфигурации.

Файл: Переписать текст в t3.txt сначала из файла t1.txt, а потом из файла t2.txt
1) Переписать текст в t3.txt сначала с файла t1.txt, а потом с файла t2.txt 2) Файл t2.txt...


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

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

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