C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 指针指向的字符串在何处/如何存储在文件中?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下代码示例将EMPLOYEE类型的结构变量写入文件,然后使用fread将结构读回另一个变量中.

int main()
{
    EMPLOYEE e1,e2;
    FILE *fptr;

    e1.emp_id=2240;
    e1.emp_name="Ravi Shekhar";
    e1.emp_salary=10000;

    fptr=fopen("c:\\employee.emp","w+b");
    if(fptr == NULL)
    {
        printf_s("\n\t cannot open file. . .");
        return 1;
    }
    printf_s("%d records written successfully. . .",fwrite(&e1,sizeof(EMPLOYEE),1,fptr));
    fseek(fptr,SEEK_SET);
    fread(&e2,fptr);

    printf_s("\nID = %d\nName = %s\nSalary = %10.2lf",e2.emp_id,e2.emp_name,e2.emp_salary);


    fclose(fptr);


    _getch();
    return 0;
}

我的问题是e1.emp_name(一个char *类型)指向的名称字符串在何处以及如何存储在二进制文件中.

谢谢.

解决方法

它根本没有存储.

存储的是char * emp_name指针的二进制内容 – 静态字符串“Ravi Shekhar”的地址.由于您在程序的同一执行会话期间写入该数据并再次读取它,因此该指针值仍然有效.即当你从文件中读取它时,它仍然指向它最初指向的相同静态字符串“Ravi Shekhar”.

如果将程序拆分为两个程序(一个执行写入而另一个执行读取),您将发现“reader”程序无法再从文件中“读取”字符串,因为它实际上并不存在.您只需读取二进制指针值,它在“阅读器”程序中无处可寻.

大佬总结

以上是大佬教程为你收集整理的c – 指针指向的字符串在何处/如何存储在文件中?全部内容,希望文章能够帮你解决c – 指针指向的字符串在何处/如何存储在文件中?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: