c - 当行超过 100 个字符时,fprintf 会生成一个 utf-16 文本文件
问题描述
我正在尝试学习如何在 C 中处理文件,此代码的目标是将用户指定的一定数量的小写字母写入每次程序运行时重新生成的文本文件中。这是在 Visual Studio Community 2019 中完成的,以防万一。
我正在努力解决的是,如果我在同一行上放置超过 100 个字符(也就是用户输入大于 49 的数字),则生成的 .txt 文件以 utf-16 而不是 utf-8 编码,这就是我添加的原因每 50 次 for 循环迭代两个换行符。
假设我需要在每一行上写超过 100 个字符,无论出于何种原因,而不是将它们放在一个字符串中,是否有解决方法?为什么它首先发生?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char* file = "test.txt";
FILE* fp = fopen(file, "w");
int Min = 97;
int Max = 122;
int i, n, newline = 1;
if (fp == NULL) {
printf("%s : couldn't be created", file);
}
else printf("%s : created successfully\n", file);
printf("How many characters do you want to generate? : ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
char letter = rand() % (Max + 1 - Min) + Min;
fprintf(fp, "%c ",(char )letter);
if (i == newline*50) {
fprintf(fp, "\n\n");
newline++;
}
}
fclose(fp);
system("pause");
return 0;
}
解决方案
推荐阅读
- php - 尝试在“woocommerce_review_order_before_payment”之后移动优惠券表格
- python - 转换后的 tensorflow SSD 模型得分低
- python - 在创建计数图 ( ) 时为分类数据设置顺序会导致错误的图
- three.js - Three.js 让脸部直接从侧面可见
- angular - 尝试生成EmbedUrlForRegisteredUser时出现CORS错误
- c++ - Box2d:如何获取光标位置以将速度应用于该方向的动态物体?
- node.js - 如何使用 TypeORM 中的类验证器处理空字符串
- reactjs - 我无法在我的上下文提供程序中设置全局变量
- javascript - 如何在 Openlayers 中使用 Overlay 显示信息?
- excel - 在选定 Excel 列的单元格中查找并突出显示重复的单元格和文本字符串