#include "stdio.h"
#include "conio.h"
#include "string.h"
#define FNAME "C:\\phone.txt\0"
void main()
{
char fname[20]=FNAME;
FILE *out;
char fam[20];
char name[20];
char tel[9];
int k;
puts("\nТелефонный в справочник");
puts("После каждого ввода нажимаете <Enter>");
if ((out=fopen(fname,"at")) == NULL)
{
printf("Error open file");
getch();
return;
}
k=getch();
while(k!=10)
{
printf("Фамилия ->");
scanf("%s",&fam);
printf("Имя ->");
scanf("%s",&name);
printf("Телефон ->");
scanf("%s",&tel);
fprintf(out, "%s %s %s", fam, name, tel);
puts("Информация добавлена");
}
printf("Ввод завершён");
fclose(out);
getch();
}
для завершения вместо ввода нажатие <Enter>
Код:
сделать так, чтобы ввод данных завершался нажатием <Enter>.
Примерно так:
"Фамилия ->
Ввод завершён
Для завершения работы нажмите <Enter>"
п.с. в некоторых случаях нужно 2 раза вызвать getch(), чтобы получить код клавиши... это происходит в тех случаях, когда была нажата системная клавиша.
код возвращается в виде числа типа int, которое при желании, можно привести к char:
Код:
int ch = getch();
if(ля-ля-ля, проверки)
{
//если ввели символ
cout << (char)ch << endl;
}
if(ля-ля-ля, проверки)
{
//если ввели символ
cout << (char)ch << endl;
}
коды символов смотри в аски таблицах, ну или просто сделай тестовый примерчик себе.
Но манипуляции с getch() не получаются
Надо сделать чтобы рабочая прога имела такой вид:
Фамилия ->бла1
Имя ->бла1 бла1
Телефон ->12345
Информация добавлена
Фамилия ->бла2
Имя ->бла2 бла2
Телефон ->12345
Информация добавлена
Фамилия ->
Ввод завершён
Для завершения работы нажмите <Enter>
Что подправить в коде?
Код:
k=getch();
while(k!=10)
while(k!=10)
а что ты делаешь здесь по твоему?
добавь в конец while k = getch(); и получишь цикл работающий, пока нажимается 'Enter', если нажимают другую клавишу - ввод информации заканчивается...
Код:
k=getch();
while(k!=13)
{
printf("Фамилия ->");
scanf("%s",&fam);
printf("Имя ->");
scanf("%s",&name);
printf("Телефон ->");
scanf("%s",&tel);
fprintf(out, "%s %s %s", fam, name, tel);
puts("Информация добавлена");
k = getch();
}
while(k!=13)
{
printf("Фамилия ->");
scanf("%s",&fam);
printf("Имя ->");
scanf("%s",&name);
printf("Телефон ->");
scanf("%s",&tel);
fprintf(out, "%s %s %s", fam, name, tel);
puts("Информация добавлена");
k = getch();
}
п.с. код 'Enter' равен 13(в десятичной системе счисления)
Спасибо большое за помощь, заработало! Не додумал немного до k = getch() в теле цикла, размещал код вне его.