【发布时间】:2013-11-12 17:59:06
【问题描述】:
我尝试将 int 转换为 string ,但它不起作用我不知道为什么... 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <array>
using namespace std;
int main()
{
struct Studentendaten {
int matrnr;
string name;
string vorname;
string datum;
float note;
};
Studentendaten stud;
array<Studentendaten,100> studArray ;
FILE * pFile;
int ch;
int mnr;
string sub;
string sub1;
string sub2;
string sub3;
string sub4;
string sub5;
int i = 0;
int pos ;
pFile=fopen("studentendaten.txt","r");
if (pFile==nullptr)
{
perror ("Fehler beim öffnen der Datei");
}
else
{
while (ch != EOF)
{
ch = fgetc(pFile);
sub += (char)(ch);
pos = sub.find(";");
if (pos != -1)
{
sub1 = sub.substr(0,pos);
sub2 = sub.substr(pos+1,pos);
sub3 = sub.substr(pos+1,pos);
sub4 =sub.substr(pos+1,pos);
sub5 =sub.substr(pos+1,pos);
mnr =stoi(sub1);
stud.matrnr = mnr;
stud.name = sub2;
stud.vorname = sub3;
stud.datum = sub4
stud.note = float(sub5);
}
if (ch == '\n')
{
stud = {matrn,name,vorname,datum,note};
studArray.[i] = stud;
i++;
}
putchar(ch);
}
fclose (pFile);
}
return 0;
}
我试过 int mnr =stoi(sub1); 以及 int mnr = atoi(sub1); 其中 sub1 = "029383214" 类似的东西....为什么它不起作用?编译器报错...
【问题讨论】:
-
我很困惑。你想要一个 int 到一个字符串还是一个字符串到一个 int?
-
atoi= ASCII 转整数。 -
除了
string,你的代码很像C。 -
类型间转换最简单的方法是
boost:lexical_cast。 -
这段代码大部分与问题无关。发布代码时,将其减少到可以显示问题的最小程度。
标签: c++ string compiler-construction int