Tag: scanf

C fprintf / fscanf优化大文件的速度

我合并了两个大的(每个8 GB左右)文件。 我尝试优化它,尽可能好。 void merge() { char *array[17]= {“q.out”,”b.out”}; // names of input files FILE *finpt1 = fopen(array[0],”r”), *finpt2 = fopen (array[1],”r”), *foutp = fopen(“final_.out”,”w”); u_int32_t a,b; fscanf(finpt1, “%u”, &a); fscanf(finpt2, “%u”, &b); int EOF1_my = 0, EOF2_my = 0; while (true) { if ( a>b ) { fprintf( foutp,”%u\n”, b); if ( fscanf(finpt2, “%u”, […]

在指向整数数组的指针中使用scanf

该程序应该存储3个学生的输入成绩并打印平均值。 但是,如果我要求学生B的平均分,它会打印出学生A的平均分数,而学生A的平均分数为0.我似乎无法找到我出错的地方..请帮助例如Student_A = {7,7, 7},Student_B = {8,8,8}; ave(学生_B)= 7 #include int i; char j; int student_A[4]; int student_B[4]; int student_C[4]; float grade_input(int student[]); float ave(int student[]); main(){ printf(“For Student A:\n”); grade_input(&student_A[4]); printf(“For Student B:\n”); grade_input(&student_B[4]); printf(“For Student C:\n”); grade_input(&student_C[4]); do{ printf(“Whose average grade do you want to see, a ,b ,c? “); getchar(); scanf(“%c”, &j); […]

有关lf说明符的scanf()和带有lf说明符的printf()的问题?

我正在学习C,我有以下代码: #include #include #include int main(int argc, char *argv[]) { double x; printf(“x = “); scanf(“%ld”, &x); printf(“x = %lf\n”, x); system(“PAUSE”); return 0; } (我使用的是Dev C4.9,Windows XP SP3) 当我运行上述程序并进入5.3; 程序打印x = 0.000000 谁能解释为什么会这样,拜托? 非常感谢。

数据分别读取fscanf

我正在尝试从文件中读取数字。 该文件具有以下格式: 2 4 5 7 3 2 4 7 我尝试使用fscanf来收集到换行符的所有数字并将数字存储在数组中,并将数字存储在第二行。 但直接从第二行继续不再启动并将其存储在另一个数组中。 是否可以使用fscanf执行此操作? int main(void) { FILE* fp; int *vec = malloc(sizeof(int)*6); int *vec_2 = malloc(sizeof(int)*6); int row, i; fp = fopen(“vector.txt”,”r”); for(i = 0; i < row; i++) //I don't know how to read until newline fscanf(fp, "%d", &vec[k]); //here store the first row […]

在无限循环之前不会打印Print语句

在尝试调试一些C代码时,我注意到如果置于无限循环之前,printf()将不会执行。 有人知道为什么吗? 实际上它不是那么大的交易,但对于调试来说这是一场噩梦。 #include int main() { int data; printf(“This prints fine.\n”); printf(“Enter data: “); scanf(“%d”, &data); printf(“This should print but it doesn’t.\n”); while(1) { //Infinite Loop } return 0; }

在没有按“输入”的情况下获取c中的字符

可能吗? 使用常规scanf或getchar将无法工作,因为我必须在输入char后按“enter”。

在c中扫描空格/整行

所以,我知道之前已经问过这个问题,但我似乎无法做任何事情。 我现在拥有的是: #include struct ClothingCustomer{ char name[20]; int age; double inseam; }; struct ClothingCustomer createACustomer(){ struct ClothingCustomer aCustomer; printf(“Enter Customer Name: “); scanf(“%s”,aCustomer.name); printf(“Age: “); scanf(“%d”,&aCustomer.age); printf(“Inseam: “); scanf(“%lf”,&aCustomer.inseam); return aCustomer; }; int main(){ FILE* customersFile = fopen(“customers.txt”,”w”); for (int i = 0; i < 5; i++){ struct ClothingCustomer aCustomer = createACustomer(); fprintf(customersFile, "%s %d […]

Xcode 4.5字符不在控制台框中显示,使用C语言的scanf()

自从更新到Xcode 4.5以来,我遇到了这个问题。 我在控制台盒子里输入了4555但在控制台盒子里只显示了4 。 我尝试了不同的输入参数,如%d , %f , %c和%s ,都有同样的问题。 我不明白。 怎么解决? 我的源代码是 #include int main() { int input; // insert code here… printf(“Hello, World!\n”); printf(“Please Enter Number : “); scanf(“%d”,&input); getchar(); printf(“Input is : %d”,input); return 0; } 和控制台框显示: >Hello, World! >Please Enter Number : 4 >Input is : 4555

读取数字和换行符时出现奇怪的scanf行为

我只是在用C做了8年后才意识到scanf的’bug’。 scanf代码下方将跳过第二行输入中的前导空白字符。 int x; char in[100]; scanf(“%d\n”,&x); gets(in); 输入: 1 s x将包含1 ,但是只是”s”而不是” s” 这个标准C还是gcc行为?

sscanf:获取字符串中的第一个和最后一个标记

是否可以通过使用sscanf获取第一个令牌然后跳过一些令牌然后获取最后一个令牌? 例如,/ bin / ps -fu1000的输出 cm 2249 1548 0 0:00.00 ttys001 0:00.01 man sscanf 我试过了: sscanf(line, “%s %[^\n]”, user, cmd); 结果应该是: user = “cm”; cmd = “man sscanf”: 但它不起作用。