c++ - 无法在 C++ 中读取 .cpp 文件
问题描述
(抱歉我的英语不好)你好,我试图用 C++ 读取一个 .cpp 文件,然后......是的,他读得不好:
#include <iostream>
#include <stdio.h>
int main() {
std::cout << "FILEREADER 2000 \n" ;
FILE* file = fopen("C:/Users/michi/OneDrive/Desktop/Yeah.cpp", "rb");
char c;
char buffer[255];
c = fgetc(file);
int counter = 0;
while (c != EOF) {
c = fgetc(file);
fgets(buffer,255,file);
puts(buffer);
}
fclose(file);
int x;
scanf("%d", x);
return 0;
}
//test
和输出:
FILEREADER 2000
nclude <iostream>
include <stdio.h>
nt main() {
std::cout << "FILEREADER 2000 \n" ;
FILE* file = fopen("C:/Users/michi/OneDrive/Desktop/Yeah.cpp", "rb");
char c;
char buffer[255];
c = fgetc(file);
int counter = 0;
while (c != EOF) {
c = fgetc(file);
fgets(buffer,255,file);
puts(buffer);
}
fclose(file);
int x;
scanf("%d", x);
return 0;
/test
/test
所以你可以看到:nclude
, nt main
...
对不起,我的英语不好
解决方案
这是你的问题:
c = fgetc(file);
int counter = 0;
while (c != EOF) {
c = fgetc(file);
fgets(buffer,255,file);
puts(buffer);
}
第一个 fgetc 读取第一行中的 #。循环内的那个从每一行读取第一个字符。但是你没有对那个角色做点什么,这就是为什么你的推杆让你失望的原因。
另请注意,您的 fgets 获取整行 - 包括末尾的换行符。但是 puts 将整个字符串——包括换行符——加上一个换行符,这就是为什么你的输出是双倍行距的。
推荐阅读
- android - 如何在 Android 中显示来自 Spring Boot 后端的实时进度更新?
- html - 两列 (div) 布局。左:固定且可滚动,带标题的文本,右:浮动,左侧文本中每个标题的图像
- vbscript - 根据您在域站点中的位置映射网络驱动器的脚本
- kodi - 由于段错误,KODI不断崩溃
- php - PHP 在 samba 共享中对 mkdir 的权限无效
- c# - 发布项目列表的复选框的值
- winapi - WinSock getaddrinfo 从主机名获取 IP 失败,直到调用 ipconfig /flushdns
- express - 如何使用 axios 发布正确的请求以表达路由?
- python - Python doit 中的动态目标名称
- python - while 循环在应该停止时重复一次