求解,关于getline读取的空格和去除代码注释
好吧,在编一个程序,用来计算源代码中的行数以及取出代码中for语句与if语句的一个程序,以下是代码:
#include <iostream>
#include<string>
#include<fstream>
using namespace std;
int ReadLine();
//int ReadFor();
void main()
{
int L;
L=ReadLine();
cout<<"代码总共"<<L<<"行"<<endl;
int m;
cin>>m;
}
int ReadLine()
{
fstream dataFile;
string File;
int num=0;
cout<<"请输入文件位置和文件名:";
cin>>File;
dataFile.open(File,ios::in|ios::out);
if(!dataFile)
{
cout<<"文件打开失败,检查文件名或文件路径是否输错!"<<endl;
exit(0);
}
while (!dataFile.eof())
{
string arr;
//dataFile>>arr;
getline(dataFile,arr);
int n=arr.length();
//for(int j=0;j<n;j++)
// {
// if(n-j>2)
// {if(arr[j]=='/'&&arr[j+1]=='/')
// arr=arr.substr(0,j);}}
num++;
//string F="for";
//string I="if";
if(arr=="\n")
--num;
for(int i=0;i<n;i++)
{
if(n-i>3)
{
if(arr[i]=='f'&&arr[i+1]=='o'&&arr[i+2]=='r')
cout<<num<<"行"<<"for语句"<<arr<<endl;
}
if(n-i>2)
{
if(arr[i]=='i'&&arr[i+1]=='f')
cout<<num<<"行"<<"if语句"<<arr<<endl;
}
}
}
return num;
}
在测试时 在计数的时候,把代码文件中的空行也计算进去了,以上红色字体为,写的取出空行的代码,貌似没有用,求教各位大神,这个该如何弄呢,而且把代码行读入到arr中时,空格也进去了,如何在读取时就忽略掉空格呢,剩下的就是那个去除注释了。。。。
#include <iostream>
#include<string>
#include<fstream>
using namespace std;
int ReadLine();
//int ReadFor();
void main()
{
int L;
L=ReadLine();
cout<<"代码总共"<<L<<"行"<<endl;
int m;
cin>>m;
}
int ReadLine()
{
fstream dataFile;
string File;
int num=0;
cout<<"请输入文件位置和文件名:";
cin>>File;
dataFile.open(File,ios::in|ios::out);
if(!dataFile)
{
cout<<"文件打开失败,检查文件名或文件路径是否输错!"<<endl;
exit(0);
}
while (!dataFile.eof())
{
string arr;
//dataFile>>arr;
getline(dataFile,arr);
int n=arr.length();
//for(int j=0;j<n;j++)
// {
// if(n-j>2)
// {if(arr[j]=='/'&&arr[j+1]=='/')
// arr=arr.substr(0,j);}}
num++;
//string F="for";
//string I="if";
if(arr=="\n")
--num;
for(int i=0;i<n;i++)
{
if(n-i>3)
{
if(arr[i]=='f'&&arr[i+1]=='o'&&arr[i+2]=='r')
cout<<num<<"行"<<"for语句"<<arr<<endl;
}
if(n-i>2)
{
if(arr[i]=='i'&&arr[i+1]=='f')
cout<<num<<"行"<<"if语句"<<arr<<endl;
}
}
}
return num;
}
在测试时 在计数的时候,把代码文件中的空行也计算进去了,以上红色字体为,写的取出空行的代码,貌似没有用,求教各位大神,这个该如何弄呢,而且把代码行读入到arr中时,空格也进去了,如何在读取时就忽略掉空格呢,剩下的就是那个去除注释了。。。。
...全文
相关推荐
使用ifstream和getline读取文件内容[c++]
c++、getline、每次读取一行txt; //读取方式: 逐词读取, 词之间用空格区分; //读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分; //读取方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分
C++读取带空格字符串的方法
今天小编就为大家分享一篇C++读取带空格字符串的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
C++_C++_读取txt文档_txt内容读取_按空格分隔_按逗号分隔_
运用C++读取txt文档,对文档中的内容按行,按逗号,按空格,分开输出,读取
C++ cin.getline及getline()用法详解
主要介绍了C++ cin.getline用法及C++ getline()的两种用法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
C++中getline()的用法详解
getline()用法 getline是C++标准库函数;它有两种形式,一种是头文件中输入流成员函数;一种在头文件中普通函数; 它遇到以下情况发生会导致生成的本字符串结束: (1)到文件结束,(2)遇到函数的定界符,(3)输入达到最大限度。 输入流成员函数getline() 函数语法结构: 在中的getline()函数有两种重载形式: istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim )



