C 如何从文件中读取数字
乍一看,这可能是一个愚蠢的问题,但我真的被卡住了,而且很匆忙。。。。 我有一个文件,里面有X个数字。 我可以用这种方法在文件中存储这些数字C 如何从文件中读取数字,c,C,乍一看,这可能是一个愚蠢的问题,但我真的被卡住了,而且很匆忙。。。。 我有一个文件,里面有X个数字。 我可以用这种方法在文件中存储这些数字 22 56 102 9 302 在一条直线上,每个数字之间有一个空格 或者我可以用这种方式在一个科隆中储存它们 22 56 102 9 302 不管怎样,我都找不到一个简单的方法来检索这些数字并将它们存储在一个表中以便以后使用。因为其中一个问题是我不知道每个数字中有多少位(只能是一位甚至是5位),所以我不能使用sscanf 你们谁能帮我把这些数
22 56 102 9 302
在一条直线上,每个数字之间有一个空格
或者我可以用这种方式在一个科隆中储存它们
22
56
102
9
302
不管怎样,我都找不到一个简单的方法来检索这些数字并将它们存储在一个表中以便以后使用。因为其中一个问题是我不知道每个数字中有多少位(只能是一位甚至是5位),所以我不能使用sscanf
你们谁能帮我把这些数字加到一个表中(不管是单行还是单冒号,都很简单)。(C语言)
(如果这个问题看起来有点愚蠢,真的很抱歉,但我真的很忙)
editt::文件中的数字可能非常多
编辑2:
这就是我试图做的(如果数字在一个科隆中)
inti=0,k;
字符缓冲区[500];
fd=fopen(“Fdonne.txt”,“r”)//全局变量
fgets(缓冲器,300,fd);
while(feof(fd)==0)
{
sscanf(缓冲区,“%d”,tb[i]);//tb也已声明
i++;
fgets(缓冲器,300,fd);
}
对于(k=0;k如果我理解正确,您希望获得数字,您可以借助string.Split
和Linq:
如果要将数字存储在文件中:
File
.WriteAllLines(@"c:\SomeOtherFile.txt", numbers);
TextFieldParser-datReader=new TextFieldParser(Application.StartupPath+@“在此处写入您的文件地址”);
datReader.SetDelimiters(新字符串[]{”“});
datReader.HasFieldsEnclosedInQuotes=true;
字符串colFields=datReader.ReadToEnd();
List lineOrder=新列表();
使用(StringReader sr=新StringReader(colFields))
{
弦线;
而((line=sr.ReadLine())!=null)
{
lineOrder.Add(行);
}
}
您的问题声明为“C语言”,但您也标记了C。这是一个还是另一个?这将改变您收到的答案。无需使用fgets()
和sscanf()
。直接使用fscanf()
。
int[] numbers = File
.ReadLines(@"c:\MyFile.txt")
.SelectMany(line => line.Split(
new char[] { ' ', '\t', '\r', '\n' },
StringSplitOptions.RemoveEmptyEntries))
.Select(item => int.Parse(item))
.ToArray();
File
.WriteAllLines(@"c:\SomeOtherFile.txt", numbers);
TextFieldParser datReader = new TextFieldParser(Application.StartupPath + @"write here your file address");
datReader.SetDelimiters(new string[] { " " });
datReader.HasFieldsEnclosedInQuotes = true;
string colFields = datReader.ReadToEnd();
List<string> lineOrder = new List<string>();
using (StringReader sr = new StringReader(colFields))
{
string line;
while ((line = sr.ReadLine()) != null)
{
lineOrder.Add(line);
}
}