Как сделать выход из цикла 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; }
Объяснение кода листинга программы
- Программа открывает файл
students.xls
в режиме записи (wb). - Пользователю предлагается ввести данные о студенте (ФИО и оценки по трём предметам).
- Данные записываются в файл.
- В цикле while происходит считывание данных от пользователя и запись их в файл.
- При нажатии клавиши Tab происходит выход из цикла.
- Файл закрывается.
- Программа открывает файл
students.xls
в режиме чтения (r). - Если файл не может быть открыт, выводится сообщение об ошибке.
- В цикле while происходит считывание данных из файла и их вывод на экран.
- После завершения чтения файла программа закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д