Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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# 在C语言中读取单行中的不同数据类型#_C#_File_Io_Streamreader - Fatal编程技术网

C# 在C语言中读取单行中的不同数据类型#

C# 在C语言中读取单行中的不同数据类型#,c#,file,io,streamreader,C#,File,Io,Streamreader,我的文件格式如下: 14 00 1.5121 14 01 1.3922 14 02 1.2231 遵循 int int double 由空格分隔 目前我的代码是: StreamReader file = new StreamReader("file_to_open.txt"); String buff; while( file.peek() > 0 ) { buff = file.ReadLine(); } 然而,我被困在如何使用buff自动解析intdouble格式的问题上

我的文件格式如下:

14 00 1.5121
14 01 1.3922
14 02 1.2231
遵循

int int double
由空格分隔

目前我的代码是:

StreamReader file = new StreamReader("file_to_open.txt");
String buff;
while( file.peek() > 0 )
{
    buff = file.ReadLine();
}
然而,我被困在如何使用
buff
自动解析
intdouble
格式的问题上。C#中有允许我这样做的函数吗

谢谢

string line = file.ReadLine;
string[] elements = line.Split(' ');

int a = Convert.ToInt32(elements[0]);
int b = Convert.ToInt32(elements[1]);
double c = Convert.ToDouble(elements[2]);
C#中有允许我这样做的函数吗

如果您逐行读取文件并用空格分隔,则是的。您可以使用和方法

在这个
while
语句中,您可以像这样拆分和解析您的值

var array = line.Split(null);
int firstInt = Int32.Parse(array[0]);
int firstInt = Int32.Parse(array[1]);
double firstDouble = Double.Parse(array[2]);
请记住,如果您不提供任何
IFormatProvider
,此方法默认使用。如果您的
CurrentCulture
不是
Double.Parse
方法抛出
FormatException

但是我通常建议使用他们的
TryParse
方法而不是
Parse
方法,因为如果解析操作失败,这个
TryParse
方法将返回
false
而不是抛出异常

C#中有允许我这样做的函数吗

如果您逐行读取文件并用空格分隔,则是的。您可以使用和方法

在这个
while
语句中,您可以像这样拆分和解析您的值

var array = line.Split(null);
int firstInt = Int32.Parse(array[0]);
int firstInt = Int32.Parse(array[1]);
double firstDouble = Double.Parse(array[2]);
请记住,如果您不提供任何
IFormatProvider
,此方法默认使用。如果您的
CurrentCulture
不是
Double.Parse
方法抛出
FormatException


但我通常建议使用他们的
TryParse
方法而不是
Parse
方法,因为如果解析操作失败,该
TryParse
方法将返回
false
而不是抛出异常。

首先将每个输入行拆分为字段:

string[] fields = buff.Split(' ');
然后分别分析每个字段:

if(fields.Length < 3) throw...
int i1 = int.Parse(field[0];
int is = int.Parse(field[1];
string s = field[2];
如果(fields.Length<3)抛出。。。
int i1=int.Parse(字段[0];
int is=int.Parse(字段[1];
字符串s=字段[2];

根据文件的来源(其内容的可靠性),您应该添加大量错误处理和防御性编程(使用TryParse())

首先将每个输入行拆分为字段:

string[] fields = buff.Split(' ');
然后分别分析每个字段:

if(fields.Length < 3) throw...
int i1 = int.Parse(field[0];
int is = int.Parse(field[1];
string s = field[2];
如果(fields.Length<3)抛出。。。
int i1=int.Parse(字段[0];
int is=int.Parse(字段[1];
字符串s=字段[2];
根据文件的来源(其内容的可靠性),您应该添加大量错误处理和防御性编程(使用TryParse())

请参见
string.Split()
。这将根据空格分隔符将字符串分成三部分。然后您可以正常解析每个部分。请参见
string.Split()
。这将根据空格分隔符将字符串分成三部分。然后您可以正常分析每个部分。