Logo

רד-בורד: ארכיון

ראשי > תיכנות > [C] בעיה בכתיבה לקובץ

23/04/2005 16:11:36 nickless
אמממ אז ככה זה הקוד
קוד:#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *first;

main()
{
char Details[3];

printf("Input the domain ");
scanf("%s",&Details[1]);
printf("Input your UserName for that domain ");
scanf("%s",&Details[2]);
printf("Input your pass for that UserName ");
scanf("%s",&Details[3]);

first=fopen ("pass.txt","a+");
fprintf(first,"d-");
fputs(&Details[1],first);
fprintf(first,"\n n-");
fputs(&Details[2],first);
fprintf(first,"\n p-");
fputs(&Details[3],first);
fclose(first);
}
זה פועל והכל אבל לא פועל טוב...
נגיד וכתבתי בכל שדה aaa אז זה יציג לי בקובץ ככה
קוד:d-aaaaa
n-aaaa
p-aaa

במקום
קוד:d-aaa
n-aaa
p-aaa
יש למישהו מושג??
תודה מראש
23/04/2005 17:32:25 Nameless
תכתוב:
int main()
ובסוף לפני הסוגריים המסולסלים שסוגרים תכתוב:
return 0;

המשתנה Details הוא מערך של תווים אבל בקלט אתה כותב %S ואתה צריך לכתוב %c

אם אתה רוצה מחרוזת תשתמש במערך כפול (זה מסבך את העניינים)
אני אומר להשתמש במערך כפול כי זה נראה שאתה רוצה לקלוט כמה מחרוזות, אבל כרגע אתה קולט מחרוזות לתא אחד כל מחררוזת במערך של תווים.

זאת אומרת שאתה מנסה לקלוט מחרוזת לתא של תו
25/04/2005 13:33:40 K4xZ
אני מסכים עם Nameless
אתה צריך מערך כפול..
זאת שיטה נחמדה..
אבל שלך לא טובה..
יש לי הצעה בשבילך סתם משהו קטן שאני למדתי..אתה מסיים פרק זה לא אומר שאתה מבין וזה לא אומר שלא..אבל כל פרק אני ממליץ לך בסי לעשות הרבה תירגולים למה אני נתקעתי והמשכתי..ועכשיו אני שולט בשפה ברמה של מתקדם פחות או יותר.
25/04/2005 19:13:00 roev
הכי פשוט זה להשתמש ב- gets() בשביל מחרוזות
25/04/2005 19:49:02 CoDeR
char Details[3];
זה מחרוזת אחת עם 3 תווים...
לא שלוש מחרוזות עם שלוש תווים..

דבר שני.
המערך מתחיל מ0 ומסתיים ב2...
לא 1 ו3...
08/05/2005 01:59:15 ziv
עשית את אחד הדברים הכי איומים שחשבתי עליהם בחיי....
char Details[3]
זה מערך של 3 תווים ... עכשיו תבין !
מה עשית הוא הכנסת סטרינג כל פעם בתוך אחר במערך!
שלא נדבר שאתה אמור להשאיר מקום לתו אחרון של סטרינג!!!!!!!!!!!!!!!!!! (כלומר 0 בסוף).
בקיצור מה שאתה צריך לעשות הוא כזה:
char a[4],b[4],c[4];
אגב לא כדאי לך לערב בין scanf ובין gets יש בינהם ריב גדול... הם שונאים אחד את השני!
עמודים: 1