我正在进行Socket编程,我需要读取文本文件,然后我需要使用制表符空格拆分该文本文件,之后我需要将每列分配给定义的数组。
但是在我的代码中所有字段都是正确的,除了价格列,我的价格数组总是返回0
如何解决这个问题?
数组声明代码
'purchase' => {
'items_attributes' => [
{
'purchase_id' => '1'
},
{
'purchase_id' => '2'
}
]
}
以下代码是拆分文本文件并将值分配给创建的数组
params.require(:purchase).permit(item_attributes: [:purchase_id])
我的文本文件如下
int id[10];
char name[10][50];
int qrty[10];
double price[10];
答案 0 :(得分:2)
如果且仅当a.txt
文件中的字段由TAB(而不是空格)分隔时,这对我有用:
#include <stdio.h>
int main()
{
char line[1000];
FILE *fp = fopen("a.txt", "r");
int pno, qty;
double uprice;
char pname[100];
while (fgets(line, sizeof(line), fp)) {
sscanf(line, "%d\t%[^\t]\t%d\t%lf", &pno, &pname, &qty, &uprice);
printf("%d %s %d %lf\n", pno, pname, qty, uprice);
}
}
您甚至可以使用line
fscanf
缓冲区
do
{
if (fscanf(fp, "%d %s %d %lf", &pno, &pname, &qty, &uprice) == 4)
printf("%d %s %d %lf\n", pno, pname, qty, uprice);
} while (!feof(fp));
免责声明:为简洁起见,此处不做任何错误检查。