Security Teams



:::
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению ) Ответ в темуСоздание новой темыСоздание опроса

> Запись введенного текста по нажатию клавиши, Реализация в консоли
Mail2k
  Дата 15.11.2007 - 22:49
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 38
Пользователь №: 3569
Регистрация: 7.06.2006



Рейтинг:
(0%) -----


Короче смысл такой.

Вводим в консоли какой-нибудь текст после чего выводится предложение:

1.-Сохранить текст в файл
2.-не сохранять и просто выйти из программы.

Нужна реализация именн на C++, а не на C, как во многих примерах пишут


Вот хотелось бы что-нибудь из этого кода сделать:



Код

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <windows.h>




ostream & operator<<(ostream & out,char* s)
{
    char buf[512],*p=buf;
    CharToOem(s,buf);
    while(*p)
        out<<*p++;
         return out;
}

main ()
{









cout<<"Введите счет, имя и баланс"<<endl;

 cout<<"Введите EOF для окончания ввода"<<endl<<"?";


int account;
char name [10];
float balance;

while (cin>>account>>name>>balance)


outClientFile<<account<<' '<<name<<' '<<balance<<' '<<endl;

cout<<"?";






ofstream outClientFile("clients.dat",ios::out | ios::app);

 
 if (!outClientFile)
 {
  cerr<< "Файл не может быть открыт"<<endl;
 exit (1);
}











return 0;

}


PMПисьмо на e-mail пользователю
Top
Mail2k
Дата 17.11.2007 - 14:39
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 38
Пользователь №: 3569
Регистрация: 7.06.2006



Рейтинг:
(0%) -----


народ,ну посоветуйте хоть что-нибудь.Неужели опять к другому форуму обращаться нужно будет за ответом. хелп!
PMПисьмо на e-mail пользователю
Top
nameless
Дата 17.11.2007 - 15:03
Цитировать сообщение
Offline



.:Тень:.
******

Профиль
Группа: -experts-
Сообщений: 1745
Пользователь №: 18
Регистрация: 19.02.2005



Рейтинг:
(90%) XXXXX


Что то типа этого, но я не уверен в правильности синтаксиса, т.к. давно не писал на С а на С++ не писал вобще =)

Код
#include <iostream>
#include <fstream>
using namespace std;

int main () {
string text;
int i;

cout << "Enter some text:";
cin >> text;
 
cout << "\nTo save enter any dig, to exit enter 1";
cin >> i;
 
if (i==1){
 return 0;
} else {
 ofstream myfile;
 myfile.open ("example.txt");
 myfile << text;
 myfile.close();
}
return 0;
}


--------------------
Мы расправим крылья
PM
Top
Kom@nd'Or
Дата 17.11.2007 - 15:13
Цитировать сообщение
Offline



Expert
******

Профиль
Группа: -editors-
Сообщений: 2078
Пользователь №: 48
Регистрация: 2.03.2005



Рейтинг:
(90%) XXXXX


c/c++ знаю плохо ... но попробую помочь ...

Задачу похоже можно свести к в следующему:
1. Даём запрос на ввод строки.
2. Читаем строку.
3. Выводим строку "тыцни 1 что-бы сохранить"
4. Выводим строку "тыцни 2 что-бы не сохранять"
5. читаем что ввел пользователь.
6. Если 2 - просто выход.
7. Иначе - если не открыт файл, то открываем и записываем полученную строку.

Вывод на экран кажись через printf, а чтение - через scanf ... или это в чистом С ...

С файлами в с не работал ...


--------------------
--
Hайден неизвестный драйвер, воткните какое-нибудь устройство!
---
[b]Во имя процесса-отца, процесса-сына и святаго root"а... Enter! [/b]
PMICQYahoo
Top
Kom@nd'Or
Дата 17.11.2007 - 15:18
Цитировать сообщение
Offline



Expert
******

Профиль
Группа: -editors-
Сообщений: 2078
Пользователь №: 48
Регистрация: 2.03.2005



Рейтинг:
(90%) XXXXX


Пересмотрел вопрос ... Ввод-вывод клавиатура-экран как я понял у тебя работает ...
Цитата
cout << "Enter some text:";
cin >> text;


Тогда загвоздка в работе с файлом?
Попробуй запихнуть в файл содержимое какой-то переменной....


--------------------
--
Hайден неизвестный драйвер, воткните какое-нибудь устройство!
---
[b]Во имя процесса-отца, процесса-сына и святаго root"а... Enter! [/b]
PMICQYahoo
Top
Kom@nd'Or
Дата 17.11.2007 - 15:27
Цитировать сообщение
Offline



Expert
******

Профиль
Группа: -editors-
Сообщений: 2078
Пользователь №: 48
Регистрация: 2.03.2005



Рейтинг:
(90%) XXXXX


Совет:
1. Возможно лучше организовать ввод данных отдельными полями - счет, имя и баланс отдельными переменными...

2. Раньше использовал импровизированное меню:
а) выход из программы
б) добавить запись
- счет
- имя
- баланс
г) Когда запись уже есть здесь выводим запрос всё-ли правильно и если да, то сохраняем в файл.

Да, программа усложняется, но работать с ней удобнее будет !..


--------------------
--
Hайден неизвестный драйвер, воткните какое-нибудь устройство!
---
[b]Во имя процесса-отца, процесса-сына и святаго root"а... Enter! [/b]
PMICQYahoo
Top
Dimon
Дата 17.11.2007 - 23:01
Цитировать сообщение
Offline



Editors
****

Профиль
Группа: -editors-
Сообщений: 446
Пользователь №: 17
Регистрация: 18.02.2005



Рейтинг:
(60%) XXX--


Код

#include <iostream>
#include <fstream>

using namespace std;

int main ()
{
    char buffer[255];
    char fileName[80];
    int response;

    cout << "Введите текст: ";
    cin.getline(buffer,255);
    cout << "\nСохранить в файл - 1, выход - any key ";
    cin >> response;

    if (response==1)
    {
          cout<<"Введите имя файла: ";
          cin.getline(fileName,80);
          ofstream fout(fileName);
          fout << buffer <<endl;
          fout.close();
    }
    else { return 0; }
    return 0;
}


--------------------
Dmitry Panoff aka Dimon
Registered Linux user N330143
2:465/213.86@Fidonet
I can read OpenOffice.org. documents
PMICQ
Top
Mail2k
Дата 18.11.2007 - 21:27
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 38
Пользователь №: 3569
Регистрация: 7.06.2006



Рейтинг:
(0%) -----


Цитата (Dimon @ 17.11.2007 - 23:01)
Код

#include <iostream>
#include <fstream>

using namespace std;

int main ()
{
    char buffer[255];
    char fileName[80];
    int response;

    cout << "Введите текст: ";
    cin.getline(buffer,255);
    cout << "\nСохранить в файл - 1, выход - any key ";
    cin >> response;

    if (response==1)
    {
          cout<<"Введите имя файла: ";
          cin.getline(fileName,80);
          ofstream fout(fileName);
          fout << buffer <<endl;
          fout.close();
    }
    else { return 0; }
    return 0;
}

После нажатия цифры 1 прога закрывается почему то
PMПисьмо на e-mail пользователю
Top
Mail2k
  Дата 18.11.2007 - 23:12
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 38
Пользователь №: 3569
Регистрация: 7.06.2006



Рейтинг:
(0%) -----


Как записать сразу текст,которому присвоены разные переменные?

Например,как в моем коде выше:

int account;
char name [10];
float balance;

Допустим ввел данные,которые относятся к account, потом ввел данные,которые относятся к name и потом ввел данные котрые относятся к balance.

А вот теперь как все это скинуть в файл? Выше пиведнный мной код делает именно это,но мне нужно с выбором 1-запись в файл 2-выход из программы

Это сообщение отредактировал Mail2k - 18.11.2007 - 23:23
PMПисьмо на e-mail пользователю
Top
Mail2k
Дата 19.11.2007 - 00:01
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 38
Пользователь №: 3569
Регистрация: 7.06.2006



Рейтинг:
(0%) -----


clap0000.gif clap0000.gif clap0000.gif clap0000.gif clap0000.gif


Ура!!! Получилось!!!



Вот рабочий код того,что мне надо было на C++:


Код

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;





int main ()
{ ofstream outClientFile("clients.dat",ios::out);


if (!outClientFile)
{
 cerr<< "File not open"<<endl;
exit (1);
}

cout<<"Enter accaunt, name and balance"<<endl;

cout<<"Enter EOF  for the end"<<endl<<"?";

int account;
char name [10];
float balance;
int text;
cin>>account>>name>>balance;
cout << "Save to file - 1, exit- any key without saving "<<endl;



cin >> text;

if (text==1)

 


/*while (cin>>account>>name>>balance)*/



{

outClientFile<<account<<' '<<name<<' '<<balance<<' '<<endl;

cout<<"?";

outClientFile.close();

}

else


return 0;


}













Всем спасибо!

Это сообщение отредактировал Mail2k - 19.11.2007 - 00:04
PMПисьмо на e-mail пользователю
Top

Опции темы Страницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса