操作实例:从文本文件a.txt中读入如下格式数据:“.000000,.000000,.000000,1.000000,2.000000,3.000000,1.000000,.000000,1.000000,2.000000,.000000,3.000000,.000000,2.000000,2.000000,2.000000,2.000000,3.000000,2.000000,.000000,.000000,.000000,2.000000,2.000000,3.000000,.000000,3.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,.000000,……”(一共有84750个数据),将读入的字符串按”,”进行分割,分割后存入字符串数组,再将字符串数组中每个字符串转换成整形数据,即将字符串数组转换成整形数组。
C#实现:
string[] data;
StreamReader sr = new StreamReader(‘E:/a.txt’,System.Text.Encoding.Default);
//打开文件
StringBuilder output = new StringBuilder();
string rl;
while ((rl = sr.ReadLine()) != null)
{
output.Append(rl);
}
data = output.ToString().Split(','); //按“,“分割字符串
int[] idata = new string[data.Length/2];
for(int i=0;i<data.Length;i++)
{
idata[i]=Convert.ToInt32(data[i].ToString()); //类型转换
}
C++(WIN32 API)实现:
char str[1000000];
char tstr[84750][7];
int smh[84750];
int j=0;
int k=0;
DWORD Len=0;
DWORD SL=0;
HANDLE hFile = CreateFile (TEXT("E:/dm.txt"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
ReadFile(hFile,str,1000000,&Len,NULL); //将文件数据读入字符串str
SL=strlen(str);
for(int i=0;i<SL;i++) //按‘,‘分隔字符串
{
if((str[i]!=',')&&(str[i]!=NULL))
{
tstr[j][k]=str[i];
k++;
}
else if((str[i]==',')&&(str[i]!=NULL))
{
j++;
k=0;
}
else
{
break;
}
}
for(int i=0;i<84750;i++) //将字符串转换成整型数
{
smh[i]=atoi(tstr[i]);
}
经过比较,感觉C#对字符串的处理还是比较方便的。