私はCプログラミングに非常に慣れていないので、おそらく非常に単純な問題があります。
私はこのような構造体を手に入れました
typedef struct Vector{
int a;
int b;
int c;
}Vector;
ここで、ベクトルの配列をファイルに書き込みたいと思います。それを実現するために、次のメソッドスキームを作成しようと思いました
String createVectorString(Vector vec){
// (1)
}
String createVectorArrayString(Vector arr[]){
int i;
String arrayString;
for(i=0; i<sizeof(arr); i++){
//append createVectorString(arr[i]) to arrayString (2)
}
}
void writeInFile(Vector arr[]){
FILE *file;
file = fopen("sorted_vectors.txt", "a+");
fprintf(file, "%s", createVectorArrayString(arr);
fclose(file);
}
int main(void){
// create here my array of Vectors (this has already been made and is not part of the question)
// then call writeInFile
return 0;
}
私の主な問題は(1)にあり、これには(2)も含まれます(Cで文字列を操作する方法がわからないため、Eclipseは「Type "String" unknown」と言っていますが、これを含めました<string.h>
)
だから私はある時点でintをStringに変換することがメソッドitoa()で可能であることを読みました。私が理解したように、私は簡単に次のことを行うことができます
char buf[33];
int a = 5;
itoa(a, buf, 10)
ただし、それを機能させることはできません。ましてや、 char
sまたはint
sを文字列に「貼り付ける」方法がわからないことは言うまでもありません。
私のポイント(1)では、フォームの文字列を作成したいと思います(a,b,c)
。ここで、a、b、およびcは、構造体ベクトルの「フィールド」です。
ポイント(2)で、フォームの単一の文字列を作成したいと思います(a1,b1,c1)\n(a2,b2,c2)\n...(an,bn,cn)
。ここで、nは配列内のベクトルの量です。
迅速な解決策はありますか?Javaの文字列の概念とCの文字列の概念を混同しませんか?