Javascript 在我的代码中发现问题并识别出其他问题
CMD窗口正在发布Javascript 在我的代码中发现问题并识别出其他问题,javascript,Javascript,CMD窗口正在发布 C:\Users\Dell\Desktop\PROGRA~1>节点反转~2.js events.js:160 throw er; // Unhandled 'error' event ^ Error: ENOENT: no such file or directory, open 'C:\Users\Dell\Desktop\PROGRA~1\Input_File.txt' at Error (native) 我不知道它可能引用了什么,但我相信它可能是我用来运
C:\Users\Dell\Desktop\PROGRA~1>节点反转~2.js
events.js:160
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, open
'C:\Users\Dell\Desktop\PROGRA~1\Input_File.txt'
at Error (native)
我不知道它可能引用了什么,但我相信它可能是我用来运行代码的Node.js
软件的一部分
感谢您提供的任何帮助。很抱歉,如果这个问题看起来很基本,或者有点不言自明,我就是看不出问题所在
也可能是因为我没有适当的代码来执行此任务
Input_File.txt
已关闭
15 12 2 + -4 * + 3 -
里面有数据。我不知道这是否会有任何帮助。这是我试图让程序解决的反向抛光函数
'use strict' ;
var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;
var ArrayStack2 = new ArrayStack () ;
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
{
console.log(inputLine) ;
var tokens = inputline.split( ' ' ) ;
for ( var i = 0 ; i < tokens.length ; i ++ )
{
const token = tokens[i] ;
var tokenCategory = 'operand' ;
if ( token === '+' || token === '-' || token === '/' || token === '*' )
{
tokenCategory = 'operator' ;
var B = ArrayStack2.pop() ;
var A = ArrayStack2.pop() ;
if ( token === '+' )
{
var answer = A + B ;
ArrayStack2.push(answer) ;
}
elseif ( token === '-' )
{
var answer = A - B ;
ArrayStack2.push(answer) ;
}
elseif ( token === '/' )
{
var answer = A / B ;
ArrayStack2.push(answer) ;
}
elseif ( token === '*' )
{
var answer = A * B ;
ArrayStack2.push(answer) ;
}//end of sub conditional statement
}//end of if statement
else
{
ArrayStack2.push(token) ;
console.log (ArrayStack) ;
}
}//end of for loop
});//end of function
rl.on ( 'close', function () {
console.log('File now closed.');
}) ; // end function
这是引用ArrayStack类时使用的空错误类
'use strict' ;
class EmptyError extends Error
{
constructor ( message )
{
// Ask superclass' constructor to initialize this object,
// including creating its "message" property ...
super ( message ) ;
} // end constructor
} // end EmptyError class
module.exports = EmptyError ;
'operator'=='-'
等等都是字符串比较,而operator
与-
,/
,*
虽然未测试,但我认为您已将其与标记进行了比较,但未与运算符进行比较
if (token === '+' || token === '-' || token === '/' || token === '*'); {
//Rest of code
if (token === '+') {
} else if (token === '-') {
// rest of code
}
// rest of code
}
您缺少基本的if-else括号。正如@brk所说,您正在比较两个字符串
“运算符”和“+”、“-”等
这是更新后的代码。检查这是否适合你
'use strict' ;
var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;
new ArrayStack () ;
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
{
console.log(inputLine) ;
var tokens = inputline.split( ' ' ) ;
for ( var i = 0 ; i < tokens.length ; i ++ )
{
const token = tokens[i] ;
var tokenCategory = 'operand' ;
if ( token === '+' || token === '-' || token === '/' || token === '*' )
{
tokenCategory = 'operator' ;
var B = ArrayStack.pop() ;
var A = ArrayStack.pop() ;
if ( token === '+' )
{
var answer = A + B ;
ArrayStack.push(answer) ;
//the error shows here where CMD recognizes the else as an 'unexpected token'
//have I missed something in setting up my nesting properly?
}
elseif ( token === '-' )
{
var answer = A - B ;
ArrayStack.push(answer) ;
}
elseif ( token === '/' )
{
var answer = A / B ;
ArrayStack.push(answer) ;
}
elseif ( token === '*' )
{
var answer = A * B ;
ArrayStack.push(answer) ;
}//end of sub conditional statement
}//end of if statement
else
{
ArrayStack.push(token) ;
console.log (ArrayStack) ;
}
}//end of for loop
});//end of function
rl.on ( 'close', function () {
console.log('File now closed.');
}) ; // end function
“严格使用”;
var ArrayStack=require('./ArrayStack');
常数fs=要求('fs');
const readline=require('readline');
新ArrayStack();
var readStream=fs.createReadStream('Input_File.txt','utf8');
var rl=readline.createInterface({input:readStream});
rl.on('line',函数(inputLine)
{
控制台日志(输入线);
var标记=inputline.split(“”);
for(var i=0;i
我不知道你的文本文件在这里是如何工作的。但是我已经更新了你的代码,几乎没有什么变化。你可以试试这个
var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;
var myStack
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
{
console.log(inputLine) ;
var tokens = inputLine.split( ' ' ) ;
ArrayStack.init(tokens, function (err, data) {
if (err) {
console.error('Error received');
}
else {
myStack = data;
console.log('pushed data '+data.first());
}
});
for ( var i = 0 ; i < tokens.length ; i ++ )
{
const token = tokens[i] ;
var tokenCategory = 'operand' ;
if ( token === '+' || token === '-' || token === '/' || token === '*' )
{
tokenCategory = 'operator' ;
var B = myStack.pop();
var A = myStack.pop();
if ( token === '+' )
{
var answer = A + B ;
myStack.push(answer) ;
}
elseif ( token === '-' )
{
var answer = A - B ;
myStack.push(answer) ;
}
elseif ( token === '/' )
{
var answer = A / B ;
myStack.push(answer) ;
}
elseif ( token === '*' )
{
var answer = A * B ;
myStack.push(answer) ;
}//end of sub conditional statement
}//end of if statement
else
{
myStack.push(token) ;
console.log (myStack) ;
}
}//end of for loop
});//end of function
rl.on ( 'close', function () {
console.log('File now closed.');
}) ; // end function
var ArrayStack=require('./ArrayStack');
常数fs=要求('fs');
const readline=require('readline');
var myStack
var readStream=fs.createReadStream('Input_File.txt','utf8');
var rl=readline.createInterface({input:readStream});
rl.on('line',函数(inputLine)
{
控制台日志(输入线);
var标记=inputLine.split(“”);
init(令牌、函数(错误、数据){
如果(错误){
console.error(“收到错误”);
}
否则{
myStack=数据;
log('pushed data'+data.first());
}
});
for(var i=0;i
之所以else
是一个“意外标记”,是因为您没有正确地使用{
和}
if
/else if
/else
结构
科尔
var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;
var myStack
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
{
console.log(inputLine) ;
var tokens = inputLine.split( ' ' ) ;
ArrayStack.init(tokens, function (err, data) {
if (err) {
console.error('Error received');
}
else {
myStack = data;
console.log('pushed data '+data.first());
}
});
for ( var i = 0 ; i < tokens.length ; i ++ )
{
const token = tokens[i] ;
var tokenCategory = 'operand' ;
if ( token === '+' || token === '-' || token === '/' || token === '*' )
{
tokenCategory = 'operator' ;
var B = myStack.pop();
var A = myStack.pop();
if ( token === '+' )
{
var answer = A + B ;
myStack.push(answer) ;
}
elseif ( token === '-' )
{
var answer = A - B ;
myStack.push(answer) ;
}
elseif ( token === '/' )
{
var answer = A / B ;
myStack.push(answer) ;
}
elseif ( token === '*' )
{
var answer = A * B ;
myStack.push(answer) ;
}//end of sub conditional statement
}//end of if statement
else
{
myStack.push(token) ;
console.log (myStack) ;
}
}//end of for loop
});//end of function
rl.on ( 'close', function () {
console.log('File now closed.');
}) ; // end function
if (condition) {
statement1
} else if (condition) {
statement2
} else {
statement3
}
if ( token === '+' || token === '-' || token === '/' || token === '*' ) ;
function (inputLine) {
console.log(inputLine);
var tokens = inputline.split(' ');
for (var i = 0; i < tokens.length; i++) {
const token = tokens[i];
var tokenCategory = 'operand';
if (token === '+' || token === '-' || token === '/' || token === '*') {
tokenCategory = 'operator';
var B = ArrayStack.pop();
var A = ArrayStack.pop();
if (token === '+') {
var answer = A + B;
ArrayStack.push(answer);
} else if (token === '-') {
var answer = A - B;
ArrayStack.push(answer);
} else if (token === '/') {
var answer = A / B;
ArrayStack.push(answer);
} else if (token === '*') {
var answer = A * B;
ArrayStack.push(answer);
} //end of sub conditional statement
} //end of if statement
else {
ArrayStack.push(token);
console.log(ArrayStack);
}
} //end of for loop
} //end of function