u010775468
键盘手C
采纳率60%
2016-01-18 17:45 阅读 2.0k

C++中string的运用如何把文件里string读给对象里的string

小弟新手一枚,初学C++有个问题想请教下各位大虾;
我在文件里存了字符串
然后用infile读出来,然后把这个值赋给我之前定义的对象数组的string name 成员
但是我不知道如何实现,求教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-01-18 18:20

    贴出你的代码才知道。如果都是string直接赋值,如果是字符数组,需要一个转换:http://blog.csdn.net/cogbee/article/details/8931838

    点赞 1 评论 复制链接分享
  • u010775468 键盘手C 2016-01-18 18:31

    多谢,已经试过了,同类型可以直接赋的,多谢哈

    点赞 评论 复制链接分享
  • 91program 91program 2016-01-19 00:27

    先搞清楚读文件的过程,从文件读出来的就是字符串,然后再赋值给 String。赋值的过程,是一个最基本的字符串转换过程。

    点赞 评论 复制链接分享
  • enpterexpress 把分全给哥 2016-01-19 01:05
  • qq_27183003 ysuwood 2016-01-19 01:32
     /* fread example: read an entire file */ 
    #include <stdio.h> 
    #include <stdlib.h> 
    int main () { 
    FILE * pFile; 
    long lSize; 
    char * buffer; 
    size_t result; 
    pFile = fopen ( "myfile.bin" , "rb" ); 
    if (pFile==NULL) {fputs ("File error",stderr); exit (1);} 
    // obtain file size: 
    fseek (pFile , 0 , SEEK_END); 
    lSize = ftell (pFile); 
    rewind (pFile); 
    // allocate memory to contain the whole file: 
    buffer = (char*) malloc (sizeof(char)*lSize); 
    if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);} 
    // copy the file into the buffer: 
    result = fread (buffer,1,lSize,pFile); 
    if (result != lSize) {fputs ("Reading error",stderr); exit (3);} 
    /* the whole file is now loaded in the memory buffer. */ 
    // terminate 
    fclose (pFile); 
    free (buffer); 
    return 0; 
    }
    
    构建函数建一个string 对象,把 char * buffer 内容存入 程序部分,请自己补充:
    #include <windows.h>
    #include<iostream>
    #include <string>
    using namespace std;
    #include <stdio.h>
    // 插入上面程序 .....
    // 补充
    string sss;
    sss.assign(buffer,result);
    cout << sss << endl;
    
    点赞 评论 复制链接分享
  • Chely_Yi Chely_Yi 2016-01-26 08:54

    用read函数 或者get getline 读取到char数组或指针里 再赋给string类型对象

    点赞 评论 复制链接分享