Как сделать выход из цикла While при нажатии клавиш Tab - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как сделать выход из цикла While(25-35 строки) при нажатии клавиш Tab и продолжить выполнение программы, за ранее спасибо
#include<stdio.h>
#include <string.h>
#include<stdlib.h> 
int main (int argc, char* argv[])
{
char FIO[12];
int f,i,l;
FILE*Kursach;
char *fname = "students.xls";
char result_sting[50]; 
if((Kursach=fopen("students.xls","wb"))==NULL) 
printf("File could not be opened\n");
else
{
printf("Vvedite FIO & otsenki po trem predmetam\n");
fprintf(Kursach,"FIO\tFizika\tInformatika\tLogika\n");
printf("FIO:");
scanf("%s",FIO);
printf("\nOtsenka po Fizike:");
scanf("%i",&f);
printf("\nOtsenka po Informatike:");
scanf("%i",&i);
printf("\nOtsenka po Logike:");
scanf("%i",&l);
while(!feof(Kursach)){ 
printf("Dlya vyhoda nazmite CTRL+C\n");
system("PAUSE");                  
printf("FIO:");
scanf("%s",FIO);
printf("\nOtsenka po Fizike:");
scanf("%i",&f);
printf("\nOtsenka po Informatike:");
scanf("%i",&i);
printf("\nOtsenka po Logike:");
scanf("%i",&l);
}
fclose(Kursach);
    Kursach = fopen(fname,"r");
    if(Kursach == 0)
    {
        printf("File could not be opened '%s'",fname);
        return 0;
    }
    int i=0;
    char *real_tail;
    while(fgets(result_sting,sizeof(result_sting),Kursach))
    {
        real_tail="";
        if(result_sting[strlen(result_sting)-1] == '\n');
        printf("%s%s\n",result_sting,real_tail);
    }
    fclose(Kursach);
}
system("PAUSE");
return 0;
}

Решение задачи: «Как сделать выход из цикла While при нажатии клавиш Tab»

textual
Листинг программы
#include<stdio.h>
#include <string.h>
#include<stdlib.h>
#include<conio.h>
int main (int argc, char* argv[])
{
char act;
char FIO[12];
int f,i,l,k,ch;
FILE*Kursach;
char *fname = "students.xls";
char result_sting[50]; 
if((Kursach=fopen("students.xls","wb"))==NULL) 
printf("File could not be opened\n");
else{
printf("Vvedite FIO & otsenki po trem predmetam\n");
fprintf(Kursach,"FIO\tFizika\tInformatika\tLogika\n");
printf("FIO:");
scanf("%s",FIO);
printf("\nOtsenka po Fizike:");
scanf("%i",&f);
printf("\nOtsenka po Informatike:");
scanf("%i",&i);
printf("\nOtsenka po Logike:");
scanf("%i",&l);
fprintf(Kursach,"%s\t%i\t%i\t%i\n",FIO,f,i,l);
while(!feof(Kursach)){ 
system("PAUSE");
printf("Dlya vyhoda nazmite CTRL+C\n");                     
printf("FIO:");
scanf("%s",FIO);
printf("\nOtsenka po Fizike:");
scanf("%i",&f);
printf("\nOtsenka po Informatike:");
scanf("%i",&i);
printf("\nOtsenka po Logike:");
scanf("%i",&l);
fprintf(Kursach,"%s\t%i\t%i\t%i\n",FIO,f,i,l);
printf("Dlya zaverchenia vvoda nazmite ESC\n");
 act = _getch();
  ch = static_cast<int>(act);
  if ( ch == 27)
{
    break;
}
}
fclose(Kursach);
    Kursach = fopen(fname,"r");
    if(Kursach == 0)
    {
        printf("no file '%s'",fname);
        return 0;
    }
    int i=0;
    char *real_tail;
    while(fgets(result_sting,sizeof(result_sting),Kursach))
    {
        real_tail="";
        printf("",i++, strlen(result_sting));
        if(result_sting[strlen(result_sting)-1] == '\n');
        printf("%s%s\n",result_sting,real_tail);
    }
    fclose(Kursach);
}
system("PAUSE");
return 0;
}

Объяснение кода листинга программы

  1. Программа открывает файл students.xls в режиме записи (wb).
  2. Пользователю предлагается ввести данные о студенте (ФИО и оценки по трём предметам).
  3. Данные записываются в файл.
  4. В цикле while происходит считывание данных от пользователя и запись их в файл.
  5. При нажатии клавиши Tab происходит выход из цикла.
  6. Файл закрывается.
  7. Программа открывает файл students.xls в режиме чтения (r).
  8. Если файл не может быть открыт, выводится сообщение об ошибке.
  9. В цикле while происходит считывание данных из файла и их вывод на экран.
  10. После завершения чтения файла программа закрывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы