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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
alex2693
Сообщений: n/a
#1

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

12.06.2009, 23:15. Просмотров 3229. Ответов 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 файле только первое слово записывается...то есть после пробела ничего не записывает....буду благодарен тому кто исправит это
Пользователь получил красную карточку за это сообщение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2009, 23:15     Проблемы при создании *.txt файла консолем
Посмотрите здесь:

C++ Ошибка при создании exe-файла
C++ Как заставить аудиофайл петь только консолем
C++ При создании файла заголовка в Code::Blocks вставляются какие-то команды препроцессору.
Проблемы при создании и построении проекта Microsoft Visual Studio 2008 Ошибки! C++
Сформировать из файла f4.txt файл g.txt C++
C++ Ошибка при создании заголовочного файла
C++ Проблемы с кодировкой при подключении текстового файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
12.06.2009, 23:36     Проблемы при создании *.txt файла консолем #2
C++
1
2
 ifstream in;
if (!in.fail()){//Если открыли
А вот этим ты что пытаешься сделать?
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
13.06.2009, 01:08     Проблемы при создании *.txt файла консолем #3
В 24 строчке cin >> a;
cin записывает символы в строку до первого пробела.
Напишите
C++
1
cin.getline (a, 512);
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
13.06.2009, 01:11     Проблемы при создании *.txt файла консолем #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;
}
alex2693
Сообщений: n/a
13.06.2009, 10:11     Проблемы при создании *.txt файла консолем #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...
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
13.06.2009, 10:50     Проблемы при создании *.txt файла консолем #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;
}
alex2693
Сообщений: n/a
13.06.2009, 11:04     Проблемы при создании *.txt файла консолем #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 секунд
тоже самое что и тогда....я пишу приет как дела, а в тексте только как дела!!!!
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
13.06.2009, 11:47     Проблемы при создании *.txt файла консолем #8
Странно... у меня все работает....
Цитата Сообщение от alex2693 Посмотреть сообщение
Добавлено через 1 минуту 26 секунд
ах даа...ты там на 15 строчке не добавил cin >> str;
А это зачем?? и куда именно.... покажи весь код что получился.....
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
13.06.2009, 12:00     Проблемы при создании *.txt файла консолем #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
alex2693
Сообщений: n/a
13.06.2009, 14:59     Проблемы при создании *.txt файла консолем #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
а это все один и тот же код?
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
14.06.2009, 01:03     Проблемы при создании *.txt файла консолем #11
Цитата Сообщение от alex2693 Посмотреть сообщение
не работает...после того как я ввожу адресс консоль сразу закрывается...
вот!сейчас сработало!я снизу это добавил сработало спасибо!Но!я написал "ddd как дела"...в тексте ddd небыло...почему7
или же:написал "Hello world", выводиться только world...
Возможно, ты что-то вводишь с помощью cin, часть записывается куда-нибудь не туда.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
14.06.2009, 01:14     Проблемы при создании *.txt файла консолем #12
Цитата Сообщение от alex2693 Посмотреть сообщение
ну то есть ниче не изменилось..
В первом случае текст записывается, а во втором читается из файла.
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
14.06.2009, 02:03     Проблемы при создании *.txt файла консолем #13
Цитата Сообщение от alex2693 Посмотреть сообщение
а это все один и тот же код?
В смысле?
alex2693
Сообщений: n/a
14.06.2009, 02:35     Проблемы при создании *.txt файла консолем #14
Цитата Сообщение от ISergey Посмотреть сообщение
В смысле?
ну то есть ниче не изменилось..
alex2693
Сообщений: n/a
14.06.2009, 09:04     Проблемы при создании *.txt файла консолем #15
Цитата Сообщение от qwert Посмотреть сообщение
Возможно, ты что-то вводишь с помощью cin, часть записывается куда-нибудь не туда.
а как могу исправить это?
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
14.06.2009, 11:19     Проблемы при создании *.txt файла консолем #16
Цитата Сообщение от alex2693 Посмотреть сообщение
а как могу исправить это?
Покажи весь код который получился.
alex2693
Сообщений: n/a
14.06.2009, 12:27     Проблемы при создании *.txt файла консолем #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;
}

вот......
Gravity
558 / 552 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
14.06.2009, 12:33     Проблемы при создании *.txt файла консолем #18
Код
cin >> str;
Вот этот cin все и портит.
alex2693
Сообщений: n/a
14.06.2009, 12:37     Проблемы при создании *.txt файла консолем #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 чтобы окно не закрылсь...делаю кампиляцию ввожу адресс снизу пишет вводите текст и не дается возможность писать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2009, 12:39     Проблемы при создании *.txt файла консолем
Еще ссылки по теме:

ofstream / ошибка при создании файла C++
C++ Проблемы при открытии файла
OpenCv 2 4 7 Ошибка при создании файла vec C++
C++ Использование переменной в качестве аргумента при создании файла через ofstream
C++ Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в конце каждой строки

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.06.2009, 12:39     Проблемы при создании *.txt файла консолем #20
Для того чтобы приостановить выполнение программы (для того чтобы она сразу не закрылась) вместо строки:
Цитата Сообщение от alex2693 Посмотреть сообщение
C++
1
Sleep(50000);
Напиши:
C++
1
system("pause");
Yandex
Объявления
14.06.2009, 12:39     Проблемы при создании *.txt файла консолем
Ответ Создать тему
Опции темы

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