Здравствуйте, TARGRED, Вы писали:
TAR>При написании три или больше букв программа закрывается.
TAR>Может глюк компилятора?
TAR>TAR>//---------------------------------------------------------------------------
TAR>#include <stdio.h>
TAR>#pragma hdrstop
TAR>//---------------------------------------------------------------------------
TAR>#pragma argsused
TAR>int main(int argc, char* argv[])
TAR>{
TAR> int s;
TAR> struct { char name[10];
TAR> unsigned sum;
TAR> int type;
TAR> union { char software[9];
TAR> char not_software[13];
TAR> }licenzia;
TAR> struct {
TAR> unsigned i;/* */
TAR> char FIO[40];
TAR> union { unsigned day;
TAR> unsigned year;
TAR> unsigned chas;
TAR> }Date;
TAR> }Raz;
TAR> } Disk_s;
TAR> printf("%s", " ---------------------------------------------------\n ");
TAR> printf("%s", "| Program Book CD |\n ");
TAR> printf("%s", "| versia 1.0 |\n ");
TAR> printf("%s", "---------------------------------------------------\n ");
TAR> printf("%s", " \n\n\n\n\nInfo:\n 1. Name (CD)\n 2. Price (CD) \n 3. One (softwere) or Zero (not_software)\n 4. I (int CD)\n 5. FIO \n 6. Day or Year \n 7. Time \n--------------------------------------------------\n\n Cansel or Ok \n--------------------------------------------------\n");
TAR> scanf("%c",&Disk_s.name,"\r");
TAR> scanf("%d",&Disk_s.sum,"\r");
TAR> /*=======================================================*/
TAR> scanf("%c",&s,"\r");
TAR> if(s=="One")
TAR> {
TAR> Disk_s.licenzia.software=="software";
TAR> }
TAR> else if(s=="Zero")
TAR> {
TAR> Disk_s.licenzia.not_software=="not_software";
TAR> }
TAR> /*=======================================================*/
TAR> scanf("%d\r",&Disk_s.Raz.i);
TAR> scanf("%d\r",&Disk_s.Raz.FIO);
TAR>/*========================================================*/
TAR> scanf("%d\r",&s);
TAR> if(s=="Day" || s=="day")
TAR> {
TAR> scanf("%c\r",&Disk_s.Raz.Date.day);
TAR> }
TAR> else if(s=="Year" || s=="year")
TAR> {
TAR> scanf("%c\r",&Disk_s.Raz.Date.year);
TAR> }
TAR>/*=======================================================*/
TAR> scanf("%d",&s);
TAR> if(s=="Cansel" || s=="cansel")
TAR> {
TAR> printf("%s\r", "-------------Cansel--------------");
TAR> }
TAR> else if(s=="ok" || s=="Ok")
TAR> {
TAR> FILE *ft;
TAR> if((ft=fopen("C:\1.txt","a"))!=NULL)
TAR> {
TAR> fprintf(ft,"%d",Disk_s.name,"\r");
TAR> if( fclose(ft)==0)
TAR> {
TAR> printf("%d", "File write and close");
TAR> close();
TAR> }
TAR> }
TAR> }
TAR> return 0;
TAR>}
TAR>//---------------------------------------------------------------------------
TAR>
"\r" должно быть в строке формата! иначе туда чего то пишется, два символа гробят \r\0, а дальше-абзац