我试图用C语言编写一个程序,以从文件中读取文本行,并创建节点以构建树。这些节点是结构。为此,我试图一次阅读六行。每当我的程序到达fscanf行时,它似乎都不会读取任何内容,将int设置为EOF并退出该函数。我尝试了很多格式组合,删除和添加空格,\ n等。我什至尝试制作单独的fscanf行以尝试读取单个字符串,即使这样似乎也不扫描任何内容。我不知道为什么会这样。这是相关代码:
member_ptr readAndCreate(FILE * file){
member_node * temp;
temp = calloc(1, sizeof(member_node));
//char temp_char_array[50] = {0,0,0,0,0};
//char *overflow;
int isEnd;
//isEnd = fscanf(file, " %s", temp_char_array);
//isEnd =
isEnd = fscanf(file, " %[^\n] %[^\n] %d %[^\n] %[^\n] %[^\n]",
temp -> family,
temp -> personal,
&temp ->ID,
temp -> email,
temp -> boatClass,
temp -> boatName
);
//temp->ID = (int)strtol(temp_char_array, &overflow, 10);
if (isEnd == EOF){
printf("Something went wrong, please try again \n");
return NULL;
} else {
return temp;
}
}
这是主要功能
int main() {
char pathname[100];
FILE * file;
member_ptr top;
member_ptr temp;
printf("input file path\n");
scanf("%[^\n]", pathname);
file = fopen(pathname, "r");
if (file == NULL){
printf("file cannot be found, closing program...");
exit(1);
}
top = readAndCreate(file);
genTree(top, file);
printOutTree(top);
printf("Hello, World!\n");
return 0;
}
答案 0 :(得分:0)
我看到您的扫描代码有问题。 // adds legend to map
var legend = L.control({position: 'bottomright'});
legend.onAdd = function(map) {
var div = L.DomUtil.create('div', 'info legend'),
magnitudes = [0,1,2,3,4,5];
div.innerHTML += "<h4 style='margin:5px'>Magnitude</h4>"
div.innerHTML += '<i class="circleR" style=background:>' + '</i>' + "Recent" + '<br>'
// loop through color intervals and generate a lable
for (var i=0; i < magnitudes.length; i++) {
div.innerHTML +=
'<i class="circle" style=background:' + getColor(magnitudes[i] + 1) + '></i>' +
magnitudes[i] + (magnitudes[i+1]?'–' + magnitudes[i+1] + '<br>': '+');
}
return div;
};
legend.addTo(map);
// toggles legend on and off
var legendLink = document.getElementById("legend");
legendLink.addEventListener('click', openLegend);
function openLegend(){
info.style.display = 'block';
}
指定的字符串输入似乎丢失了。
尝试更改
s
进入
isEnd = fscanf(file, " %[^\n] %[^\n] %d %[^\n] %[^\n] %[^\n]",
您在isEnd = fscanf(file, " %[^\n]s %[^\n]s %d %[^\n]s %[^\n]s %[^\n]s",
函数中遇到相同的错误。