Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我关闭命令提示符时,我的C语言基本交易程序不会存储任何修改 #包括 int main(){ //在出售和购买后,我希望它能修改这个 结构音乐{ int srno; 字符名[10]; 整数上限; int-lowerlimit; 内特瓦恩; }; //维护个人数据的结构 结构客户机{ int srno; 字符名[5]; 整数上限; int-lowerlimit; 内特瓦恩; }; 文件*f1; 整数选择、金额、价格; int x,代码,j=0; 结构音乐m1[]={1,“苹果”,100,98,10,2,“阀门”,100,98,10,3,“谷歌”,90,80,10,4,“特斯拉”,100,98,10}; 结构音乐m2[10]; f1=fopen(“4.DAT”、“rb+”); 如果(f1==NULL) { printf(“文件不存在!”); 出口(0); } 而(1) { printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); printf(“菜单\n”); printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); printf(“1)股票市场\n”); printf(“2)购买\n”); printf(“3)个人信息\n”); printf(“4)出售\n”); printf(“5)退出\n”); printf(“输入选项:”); scanf(“%d”,选择(&C); 开关(选择) { 案例1: { printf(“股票市场”); printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); 对于(x=0;x_C - Fatal编程技术网

当我关闭命令提示符时,我的C语言基本交易程序不会存储任何修改 #包括 int main(){ //在出售和购买后,我希望它能修改这个 结构音乐{ int srno; 字符名[10]; 整数上限; int-lowerlimit; 内特瓦恩; }; //维护个人数据的结构 结构客户机{ int srno; 字符名[5]; 整数上限; int-lowerlimit; 内特瓦恩; }; 文件*f1; 整数选择、金额、价格; int x,代码,j=0; 结构音乐m1[]={1,“苹果”,100,98,10,2,“阀门”,100,98,10,3,“谷歌”,90,80,10,4,“特斯拉”,100,98,10}; 结构音乐m2[10]; f1=fopen(“4.DAT”、“rb+”); 如果(f1==NULL) { printf(“文件不存在!”); 出口(0); } 而(1) { printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); printf(“菜单\n”); printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); printf(“1)股票市场\n”); printf(“2)购买\n”); printf(“3)个人信息\n”); printf(“4)出售\n”); printf(“5)退出\n”); printf(“输入选项:”); scanf(“%d”,选择(&C); 开关(选择) { 案例1: { printf(“股票市场”); printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); 对于(x=0;x

当我关闭命令提示符时,我的C语言基本交易程序不会存储任何修改 #包括 int main(){ //在出售和购买后,我希望它能修改这个 结构音乐{ int srno; 字符名[10]; 整数上限; int-lowerlimit; 内特瓦恩; }; //维护个人数据的结构 结构客户机{ int srno; 字符名[5]; 整数上限; int-lowerlimit; 内特瓦恩; }; 文件*f1; 整数选择、金额、价格; int x,代码,j=0; 结构音乐m1[]={1,“苹果”,100,98,10,2,“阀门”,100,98,10,3,“谷歌”,90,80,10,4,“特斯拉”,100,98,10}; 结构音乐m2[10]; f1=fopen(“4.DAT”、“rb+”); 如果(f1==NULL) { printf(“文件不存在!”); 出口(0); } 而(1) { printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); printf(“菜单\n”); printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); printf(“1)股票市场\n”); printf(“2)购买\n”); printf(“3)个人信息\n”); printf(“4)出售\n”); printf(“5)退出\n”); printf(“输入选项:”); scanf(“%d”,选择(&C); 开关(选择) { 案例1: { printf(“股票市场”); printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”); 对于(x=0;x,c,C,您使用了错误的运算符来测试相等性 #include<stdio.h> int main() { //After selling and buying i want it to modify this struct music { int srno; char name[10]; int upperlimit; int lowerlimit; int avarn; }; //Structure

您使用了错误的运算符来测试相等性

#include<stdio.h>
int main() {  
   //After selling and buying i want it to modify this 
   struct music {
       int srno;
       char name[10];
       int upperlimit;
       int lowerlimit;
       int avarn;
 };

//Structure to maintain personal data
struct custormer {
    int srno;
    char name[5];
    int upperlimit;
    int lowerlimit;
    int avarn;
};

FILE *f1;
int choice,amount,price;
int x,code,j=0;


struct music m1[] = {1,"Apple",100,98,10,2,"Valve",100,98,10,3,"Google",90,80,10,4,"Tesla",100,98,10};
struct music m2[10];

f1 = fopen("4.DAT","rb+");
if(f1==NULL)
{
    printf("File does not exist!");
    exit(0);
}

while(1)
{
    printf("___________________________________\n");
    printf("MENU\n");
    printf("___________________________________\n");
    printf("1) Stock Market\n");
    printf("2) Buy\n");
    printf("3) Personal Info\n");
    printf("4) Sell\n");
    printf("5) Exit\n");

    printf("Enter choice:");
    scanf("%d",&choice);

    switch(choice)
    {
    case 1:
        {
            printf("Stock Market\n");
            printf("___________________________________\n");
            for(x=0;x<4;x++)
            {
                printf("%d\t %s\t %d\t %d\t %d\n",m1[x].srno,m1[x].name,m1[x].upperlimit,m1[x].lowerlimit,m1[x].avarn);
                fwrite(&m1,sizeof(m1),1,f1);
            }
            break;
        }
    case 2:
        {
            printf("Enter code of Stock:");
            scanf("%d",&code);

            printf("Enter number of stocks:");
            scanf("%d",&amount);

            printf("Enter price:");
            scanf("%d",&price);

            rewind(f1);
            for(x=0;x<4;x++)
            {
                if(price>m1[x].lowerlimit&&price<m1[x].upperlimit)
                {

                    if(m1[x].srno==code)
                        {
                            printf("Trasaction Is Succesful\n");
                            m1[x].avarn = m1[x].avarn-amount;
                            fwrite(&m1,sizeof(m1),1,f1);

                            m2[j].srno = j+1;
                            strcpy(m2[j].name,m1[x].name);
                            m2[j].avarn = amount;
                            j++;
                        }
                }

            }
        break;
        }
    case 3:
        {
            for(x=0;x<j;x++)
            {
                printf("%d\t %s\t %d\n ",m2[x].srno,m2[x].name,m2[x].avarn);
                fseek ( f1, sizeof(m1), SEEK_CUR ) ;
                fwrite ( &m2, sizeof(m2), 1, f1 ) ;
            }

            break;
        }

    case 4:
        {
            printf("Enter code of stock to sell:");
            scanf("%d", &code);

            printf("Enter amount to sell:");
            scanf("%d",&amount);

            printf("Enter price to sell:");
            scanf("%d",&price);

            for(x=0;x<4;x++)
            {
                if(price>m1[x].lowerlimit&&price<m1[x].upperlimit)
                {
                    if(m1[x].srno==code)
                    {
                        printf("Transaction is Sucessful\n");
                        m1[x].avarn = m1[x].avarn+amount;
                        fwrite(&m1,sizeof(m1),1,f1);
                    }
                }
            }
        break;
        }

    case 5:
        {
            printf("Thanks!");
            exit(0);
        }
    default:
        {
            printf("Invalid input!");
            exit(0);
            break;
        }

    }
}
 fclose(f1);
 return 0;
}
此语句将
NULL
赋值给
f1
,然后计算为false

您应该使用
if(f1==NULL)
来测试它是否为NULL。或者干脆使用
if(f1)

你正在做的另一件奇怪的事情是打开文件两次,第一个句柄泄漏。你应该先关闭它,或者只打开一次


此外,还应注意打开模式。第二次调用实际上会破坏文件的内容。读取。

您使用了错误的运算符来测试相等性

#include<stdio.h>
int main() {  
   //After selling and buying i want it to modify this 
   struct music {
       int srno;
       char name[10];
       int upperlimit;
       int lowerlimit;
       int avarn;
 };

//Structure to maintain personal data
struct custormer {
    int srno;
    char name[5];
    int upperlimit;
    int lowerlimit;
    int avarn;
};

FILE *f1;
int choice,amount,price;
int x,code,j=0;


struct music m1[] = {1,"Apple",100,98,10,2,"Valve",100,98,10,3,"Google",90,80,10,4,"Tesla",100,98,10};
struct music m2[10];

f1 = fopen("4.DAT","rb+");
if(f1==NULL)
{
    printf("File does not exist!");
    exit(0);
}

while(1)
{
    printf("___________________________________\n");
    printf("MENU\n");
    printf("___________________________________\n");
    printf("1) Stock Market\n");
    printf("2) Buy\n");
    printf("3) Personal Info\n");
    printf("4) Sell\n");
    printf("5) Exit\n");

    printf("Enter choice:");
    scanf("%d",&choice);

    switch(choice)
    {
    case 1:
        {
            printf("Stock Market\n");
            printf("___________________________________\n");
            for(x=0;x<4;x++)
            {
                printf("%d\t %s\t %d\t %d\t %d\n",m1[x].srno,m1[x].name,m1[x].upperlimit,m1[x].lowerlimit,m1[x].avarn);
                fwrite(&m1,sizeof(m1),1,f1);
            }
            break;
        }
    case 2:
        {
            printf("Enter code of Stock:");
            scanf("%d",&code);

            printf("Enter number of stocks:");
            scanf("%d",&amount);

            printf("Enter price:");
            scanf("%d",&price);

            rewind(f1);
            for(x=0;x<4;x++)
            {
                if(price>m1[x].lowerlimit&&price<m1[x].upperlimit)
                {

                    if(m1[x].srno==code)
                        {
                            printf("Trasaction Is Succesful\n");
                            m1[x].avarn = m1[x].avarn-amount;
                            fwrite(&m1,sizeof(m1),1,f1);

                            m2[j].srno = j+1;
                            strcpy(m2[j].name,m1[x].name);
                            m2[j].avarn = amount;
                            j++;
                        }
                }

            }
        break;
        }
    case 3:
        {
            for(x=0;x<j;x++)
            {
                printf("%d\t %s\t %d\n ",m2[x].srno,m2[x].name,m2[x].avarn);
                fseek ( f1, sizeof(m1), SEEK_CUR ) ;
                fwrite ( &m2, sizeof(m2), 1, f1 ) ;
            }

            break;
        }

    case 4:
        {
            printf("Enter code of stock to sell:");
            scanf("%d", &code);

            printf("Enter amount to sell:");
            scanf("%d",&amount);

            printf("Enter price to sell:");
            scanf("%d",&price);

            for(x=0;x<4;x++)
            {
                if(price>m1[x].lowerlimit&&price<m1[x].upperlimit)
                {
                    if(m1[x].srno==code)
                    {
                        printf("Transaction is Sucessful\n");
                        m1[x].avarn = m1[x].avarn+amount;
                        fwrite(&m1,sizeof(m1),1,f1);
                    }
                }
            }
        break;
        }

    case 5:
        {
            printf("Thanks!");
            exit(0);
        }
    default:
        {
            printf("Invalid input!");
            exit(0);
            break;
        }

    }
}
 fclose(f1);
 return 0;
}
此语句将
NULL
赋值给
f1
,然后计算为false

您应该使用
if(f1==NULL)
来测试它是否为NULL。或者干脆使用
if(f1)

你正在做的另一件奇怪的事情是打开文件两次,第一个句柄泄漏。你应该先关闭它,或者只打开一次


此外,还应注意打开模式。第二次调用实际上会破坏文件的内容。读取。

使用
put()
打印输出行,或在字符串末尾包含换行符。使用
put())
打印输出行,或在字符串末尾添加换行符。感谢您的回复!很抱歉(f1=NULL),我在这里复制程序时犯了一个错误。我按照你说的做了,删除了文件1的双开口,而只是使其为rb+,但问题仍然存在,每当我重新运行程序检查文件4.DAT中的数据时,它只显示原始表,而不是修改的表。你能帮我一下吗?请阅读T感谢您的回复!很抱歉(f1=NULL),我在这里复制程序时犯了一个错误。我按照你说的做了,删除了文件1的双开口,而只是将其改为rb+,但问题仍然存在,每当我重新运行程序检查文件4.DAT中的数据时,它只显示原始表,而不是修改后的表。你能帮我一下吗?请阅读