由于我对 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 说“类型“字符串”未知”,尽管我包括在内<string.h>
)
所以我在某些时候读到,使用 itoa() 方法可以将 int 转换为 String。据我了解,我可以简单地执行以下操作
char buf[33];
int a = 5;
itoa(a, buf, 10)
但是,我无法将其用于工作,更不用说我无法弄清楚如何将char
s 或int
s “粘贴”到字符串中。
在我的观点(1)中,我想创建一个 String 的 Form (a,b,c)
,其中 a、b 和 c 是我的 struct Vector 的“字段”。
在第(2)点,我想创建一个 String 的 Form (a1,b1,c1)\n(a2,b2,c2)\n...(an,bn,cn)
,其中 n 是数组中向量的数量。
有没有快速的解决方案?我是否将 Java 中的字符串概念与 C 中的字符串概念混淆了?