我在c#
中这样做TextWriter tw = new StreamWriter("SQL_U.txt");
for (int j = 0; j < matrix.ColumnCount; j++)
{
for (int i = 0; i < matrix.RowCount; i++)
{
tw.WriteLine(U[i, j] + " ");
}
}
tw.Close();
但是
-0,233694952850896
-0,150092222507639
-0,208798702657929
-0,231787481025756
-0,174773485921403
-0,0407654849559224
0,221253448397395
0,186510884928728
0,260534246686463
0,187890851164781
0,0878923620975135
0,234198798909221
0,291676946994878
0,327785825667529
0,237572713217582
-0,0860652250783251
-0,0421504222854907
-0,00555780603925644
代替
-0,233694952850896 -0,150092222507639 -0,208798702657929 -0,231787481025756
-0,174773485921403 -0,0407654849559224 .....
如何解决?
答案 0 :(得分:7)
使用Write
代替WriteLine
来阻止开始换行。然后在每行完成后插入一个新行。
using (TextWriter tw = new StreamWriter("SQL_U.txt"))
{
for (int j = 0; j < matrix.ColumnCount; j++)
{
for (int i = 0; i < matrix.RowCount; i++)
{
tw.Write(U[i, j] + " ");
}
tw.WriteLine();
}
}
我还将您的代码更改为使用using
而不是调用Close
,以便即使存在异常也能正确处理编写器。
使用此方法,您还可以在每行的末尾写一个额外的空格。如果这是一个问题,您可能需要稍微修改代码,以根据索引有条件地写入此空间。
using (TextWriter tw = new StreamWriter("SQL_U.txt"))
{
for (int j = 0; j < matrix.ColumnCount; j++)
{
for (int i = 0; i < matrix.RowCount; i++)
{
if (i != 0)
{
tw.Write(" ");
}
tw.Write(U[i, j]);
}
tw.WriteLine();
}
}
答案 1 :(得分:0)
这是因为您使用的是WriteLine
,而不是Write